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
|
|
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