Dobry den,

Asi IronPython+ADO.NET zatial este moc ludi nepouziva, ked mi nikto neodpovedal na moju predoslu otazku :-)
Medzitym sa mi podarilo zistit ako sa pouziva DataSet+DataAdapter a  tu pripajam funkcny priklad.

Poznamka:
DataSet v ADO.NET sa podoba na Recordset v ADO, s tym hlavnym rozdielom ze moze obsahovat viac tabuliek.

----- priklad -----
...

### 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()
----- koniec prikladu -----

----- Forwarded by Roman Miklos/RZB/PSS on 27.09.2006 18:01 -----
Roman Miklos <[EMAIL PROTECTED]>
Sent by: [EMAIL PROTECTED]

19.09.2006 17:37

Please respond to
Konference PyCZ <python@py.cz>

To
"Konference PyCZ" <python@py.cz>
cc
Subject
[python] Fw:  IronPython & ADO.NET






Dobry den,

Skusal ste niekto pristup do databazy cez ADO.NET a IronPython?

Napr. toto citanie pomocou Readeru mi funguje:


----- priklad -----

...

### Pouzitie ADO.NET

import clr

import System

clr.AddReference("System.Data")

import System.Data

from System.Data.OleDb import OleDbConnection as dbconnection


# Connection String

connectstr='PROVIDER=IBMDA400.DataSource.1;DATA SOURCE='+csebk+'; USER ID='+userid+'; PASSWORD='+pwd


# Vytvorit spojenie

dbcon=dbconnection(connectstr)

dbcon.Open()


# Vytvorit SQL Command

dbcmd = dbcon.CreateCommand()

dbcmd.CommandText = "SELECT * FROM r000100T.r000270V"


# Citat data

reader = dbcmd.ExecuteReader()


count=0

while reader.Read():

count +=1        

print "%10s %10s %10s %10s" % (reader[0], reader[1], reader[2], reader[3])        


print "pocet viet v tabulke je: %d" % count


# zavret reader

reader.Close()

 

# Ukoncit spojenie

dbcon.Close()

----- koniec prikladu -----




Ked ale skusim pouzit dataadapter a dataset, t.j. zhruba takto  


----- priklad -----


...

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

DSN='PROVIDER=IBMDA400.DataSource.1;DATA SOURCE='+csebk+'; USER ID='+userid+'; PASSWORD='+pwd

print DSN

conn=dbconnection(DSN)

conn.Open()


dataadapter = dbdataadapter("SELECT * FROM r000100T.r000270V", conn)

#rs = System.Data.DataSet("MyDataSet")

rs=dataset("MyDataSet")

dataadapter.Fill(rs,"MyTable")

#print rs

row= rs.Tables(0).Rows(0)

...

----- koniec prikladu -----


dostanem na poslednom uvedenom riadku chybu
"DataTableCollection object is not callable"


Mate niekto funkcny priklad jak pouzit DataSet v IronPythone?


Mgr. Ing. Roman MIKLÓŠ
Prvá stavebná sporiteľňa a.s.
Bajkalská 30, P. O. Box 48
829 48  Bratislava 25
Tel.: +421/ 2 / 582 31 174
Fax: +421/ 2 / 582 31 109


Mgr. Ing. Roman MIKLÓŠ
Prvá stavebná sporiteľňa a.s.
Bajkalská 30, P. O. Box 48
829 48  Bratislava 25
Tel.: +421/ 2 / 582 31 174
Fax: +421/ 2 / 582 31 109 _______________________________________________
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Mgr. Ing. Roman MIKLÓŠ
Prvá stavebná sporiteľňa a.s.
Bajkalská 30, P. O. Box 48
829 48  Bratislava 25
Tel.: +421/ 2 / 582 31 174
Fax: +421/ 2 / 582 31 109
_______________________________________________
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Odpovedet emailem