[python] access soubor - vytvoření relací
RMiklos na pss.sk
RMiklos na pss.sk
Úterý Květen 5 18:29:28 CEST 2009
Ked su na to SQL-prikazy mohlo by to fungovat.
Mimochodom ked som zadal do Googlu
http://www.google.sk/search?hl=sk&q=data+relation+ADO&meta=&aq=f&oq=
tak mi to vyhodilo same linky suvisiace s ADO.NET - napriklad tu
http://www.c-sharpcorner.com/UploadFile/cvinodkumar/DataRelationVK11292005072318AM/DataRelationVK.aspx
Predpokladam, ze ADO na to nema metody, iba ADO.NET.
ADO.NET je odlisne od ADO. Napriklad namiesto objektu Recordset sa pouziva
DataSet, ktory moze obsahovat viac tabuliek.
Ale na vytvorenie relacie ma objekt typu DataSet metodu (ako vidiet na
priklade v horeuvedenom linku: DataSet.Relations.Add() )
ADO.NET som skusal s IronPythonom ( http://www.codeplex.com/IronPython ).
Ak by si to chcel skusit s IronPythonom, tak tu je maly zdrojak jak sa s
tym robi, Zvysok odkukas zo zdrojakov C# alebo VB.NET
(Negarantujem ci zdrojak 100% funguje, lebo teraz IronPython nainstalovany
nemam).
"""
Pouzitie ADO.NET pre pristup do AS/400
s vyuzitim DataSet a DataAdapter
"""
csebk ='nejaka_as400'
userid='nejake_id'
pwd ='nejake_heslo'
### Pouzitie ADO.NET
import clr
import System
clr.AddReference("System.Data")
import System.Data
from System.Data.OleDb import OleDbConnection as dbconnection
from System.Data.OleDb import OleDbDataAdapter as dbdataadapter
from System.Data import DataSet as dataset
# Connection String
connectstr='PROVIDER=IBMDA400.DataSource.1;DATA SOURCE='+csebk+'; USER ID=
'+userid+'; PASSWORD='+pwd
#print connectstr
# Vytvorit spojenie
dbconn=dbconnection(connectstr)
dbconn.Open()
# Vytvorit SQL Statement
sqlStatement = "SELECT * FROM r000100T.r000270V"
#sqlStatement = "SELECT * FROM r000100T.p400100v"
# DataAdapter
da = dbdataadapter(sqlStatement, dbconn)
# Vytvorit DataSet
#ds = System.Data.DataSet("MyDataSet")
ds=dataset("MyDataSet")
# Naplnit Dataset
da.Fill(ds, "MyTable")
# Vylistovat tabulky v DataSete
for table in ds.Tables:
print table
# Vylistovat vybrane polia vo vsetkych riadkoch 1.tabulky DataSetu
count=0
for row in ds.Tables[0].Rows:
count +=1
print "%10s %10s %10s %10s" % (row[0], row[1], row[2], row[3])
print "pocet viet v tabulke je: %d" % count
# Ukoncit spojenie
dbconn.Close()
From:
Ondrej Beranek <rainbof na gmail.com>
To:
Konference PyCZ <python na py.cz>
Date:
05.05.2009 17:58
Subject:
Re: [python] access soubor - vytvoření relací
Sent by:
python-bounces na py.cz
Uz to odkoukavam tady:
http://msdn.microsoft.com/en-us/library/bb243835.aspx
pokusim se to tam naprat jako sadu SQL prikazu.
2009/5/5 <RMiklos na pss.sk>
Jake relacie myslis?
S Accessom nepracujem, ale ak to co chces ide vseobecne cez ADO, tak sa to
da odkukat z nejakych prikladov napr. vo Visual Basicu a malo by to
fungovat aj v Pythone podobnym sposobom.
From:
Ondrej Beranek <rainbof na gmail.com>
To:
Konference PyCZ <python na py.cz>
Date:
05.05.2009 17:03
Subject:
Re: [python] access soubor - vytvoření relací
Sent by:
python-bounces na py.cz
Přes ADO to vypadá jednoduše. Nenašel jsem ale způsob jak to donutit
tvořit relace mezi tabulkami.
2009/5/5 <RMiklos na pss.sk>
Ja pouzivam ADO:
Priklad spracovanie (update) *.dbf suboru:
#
"""
Spracovanie DBF databazy pomocou ADO
"""
import string
# Pouzitie ADO
import win32com.client
conn=win32com.client.Dispatch('ADODB.Connection')
# Connection String
DSN='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\Perl_Python\Database;
\
Extended Properties=FoxPro 3.0;'
# print DSN
conn.Open(DSN)
rs = win32com.client.Dispatch('ADODB.Recordset')
rs_name = 'MyRecordset'
rs.CursorLocation = 3
rs.Open("SELECT * FROM rkun000", conn,1,3)
# Vypis tabulky a update
rs.MoveFirst()
count = 0
while 1:
if rs.EOF:
break
else:
# pocet viet
count = count + 1
nazov = rs.Fields.Item('NAZOV').Value
rs.Fields.Item('NAZOV').Value = string.capwords(nazov)
print rs.Fields.Item('NAZOV').Value
# update aktualnu vetu
rs.Update()
# next record
rs.MoveNext()
print "Pocet spracovanych viet v databaze = %d" % count
# Ukoncit spojenie
conn.Close()
Na Accsess musis zmenit iba connection string - pohladaj si ho (mozno tu):
http://www.connectionstrings.com/
http://www.carlprothman.net/Default.aspx?tabid=81
From:
Ondrej Beranek <rainbof na gmail.com>
To:
Konference PyCZ <python na py.cz>
Date:
04.05.2009 17:46
Subject:
[python] access soubor - vytvoření relací
Sent by:
python-bounces na py.cz
Ahoj,
potřeboval bych nějak z python skriptu stvořit access databázi (mdb
soubor) a aby toho nebylo dost potřeboval bych v ní ještě vytvořit relace.
Je soubor datové výměny která probíhá denně. Ty relace stačí vyrobit až po
vytvořeníé tabulek.
Přítomnost accessu neni problem.
Díky za všechny typy._______________________________________________
Python mailing list
Python na py.cz
http://www.py.cz/mailman/listinfo/python
_______________________________________________
Python mailing list
Python na py.cz
http://www.py.cz/mailman/listinfo/python
_______________________________________________
Python mailing list
Python na py.cz
http://www.py.cz/mailman/listinfo/python
_______________________________________________
Python mailing list
Python na py.cz
http://www.py.cz/mailman/listinfo/python
_______________________________________________
Python mailing list
Python na py.cz
http://www.py.cz/mailman/listinfo/python
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://www.py.cz/pipermail/python/attachments/20090505/1dbd9a7c/attachment.htm>
Další informace o konferenci Python