[python] access soubor - vytvoření relací

Ondrej Beranek rainbof na gmail.com
Úterý Květen 5 19:10:35 CEST 2009


vzhledem k tomu ze se jedna o vytvoreni opravdu maleho a pokud mozno
autonomniho meziclanku v DI procesu. Iron python asi nebude ono; ale
rozhodne si to zkusim.

2009/5/5 <RMiklos na pss.sk>

> 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*<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* <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* <rainbof na gmail.com>>  To: Konference
> PyCZ <*python na py.cz* <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*<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* <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.connectionstrings.com/> *
> **http://www.carlprothman.net/Default.aspx?tabid=81*<http://www.carlprothman.net/Default.aspx?tabid=81>
>
>
>   From: Ondrej Beranek <*rainbof na gmail.com* <rainbof na gmail.com>>  To: Konference
> PyCZ <*python na py.cz* <python na py.cz>>  Date: 04.05.2009 17:46  Subject: [python]
> access soubor - vytvoření relací  Sent by: *python-bounces na py.cz*<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* <Python na py.cz> *
> **http://www.py.cz/mailman/listinfo/python*<http://www.py.cz/mailman/listinfo/python>
>
>
> _______________________________________________
> Python mailing list*
> **Python na py.cz* <Python na py.cz>*
> **http://www.py.cz/mailman/listinfo/python*<http://www.py.cz/mailman/listinfo/python>
> _______________________________________________
> Python mailing list*
> **Python na py.cz* <Python na py.cz>*
> **http://www.py.cz/mailman/listinfo/python*<http://www.py.cz/mailman/listinfo/python>
>
>
> _______________________________________________
> Python mailing list*
> **Python na py.cz* <Python na py.cz>*
> **http://www.py.cz/mailman/listinfo/python*<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/008e3f0d/attachment.htm>


Další informace o konferenci Python