Autor | Thema: 3. Betaversion PROFAN 7.6! | | Datum:18.09.02 19:35 
(rgh-soft@t-online.de) | |
Neu: Nutzung mehrerer SQL-Verbindungen
======================================
Diese Funktionalität wird wahrscheinlich noch geändert, daher betrachtet sie nur als unverbindlichen Prototypen!
Ein erfolgeiches SQLInit liefert nun nicht mehr 1 zurück, sondern das Handle der Datenbankverbindung. Auf diese Weise kann man mehrere SQLInit machen und sich die Handles merken:
DB1& = SQLINIT("<Datenabank1>")
DB2& = SQLINIT("<Datenabank2>")
VOR dem entsprechenden SQLExec oder SQLDone kann nun festgelegt werden, welche Datenbank genutzt werden soll:
SET("SQLDBC",DB1&)
SQLEXEC "<Befehl1>",1
SET("SQLDBC",DB2&)
SQLEXEC "<Befehl2>",1
Es gibt nun auch eine Systemvariable &SQLDBC, die das Handle der gerade aktuellen Datenbankverbindung enthält.
Hier die bekannte Download-Adresse:
http://www.profan2.de/download/xprofan.zip
Da ich momentan nur einen SQL-Treiber auf meinem System habe, kann ich das Ganze nicht so recht testen. Ich bitte daher diejenigen, die diese Funktion benötigen um umfangreiche Tests und Mitteilung der Ergebnisse!
Danke!
Roland
|
| | Datum:19.09.02 16:37 
(rgh-soft@t-online.de) | |
Heute habe ich es endlich testen können: Es gibt noch einen Fehler: SQLInit liefert noch nicht das Datenbank-Handle zurück sondern wie bisher Erfolg oder Fehler. Nutzt man aber die Systemvariable &SQLDBC dann funktioniert es problemlos. Hier mein Testprogramm:
cls
declare hdb1&, hdb2&
' 1. Datenbank öffen und lesen
if @SQLinit("DSN=ZIM") > 0
hdb1& = &SQLDBC
print "OK"
sqlexec "select name, dgeburt from personen where dgeburt > {d'1969-09-12'}",1
listbox$("ZIM",2)
else
print &SQLDBC
print "FEHLER!"
endif
' 2. Datenbank öffen und lesen
clearlist
if @SQLinit("DSN=dBase") > 0
hdb2& = &SQLDBC
print "OK"
sqlexec "select * from adress",1
listbox$("dBase",2)
else
print "FEHLER!"
endif
' 1. Datenbank erneut lesen
clearlist
set("SQLDBC",hdb1&)
sqlexec "select name, dgeburt from personen where dgeburt > {d'1969-09-12'}",1
listbox$("ZIM",2)
' 2. Datenbank erneut lesen
clearlist
set("SQLDBC",hdb2&)
sqlexec "select * from adress",1
listbox$("dBase",2)
' Beide Datenbanken schließen
set("SQLDBC",hdb1&)
sqldone
set("SQLDBC",hdb2&)
sqldone
waitinput
BTW: Hier sieht man eine Möglichkeit, wie in ODBC mit Datumsfeldern umgegangen werden kann!
Weiterhin viel Spaß beim Testen!
Gruß
Roland
|
| | Datum: 20.09.02 21:01 
(HJKramm@Web.de) | |
hallo,
na, das ist es doch, was mir gefehlt hat .... (auch mit bug)
daten über artikelnummer vom entfernten server über oracle-odbc abrufen, dann daten über gleiche nummer vom lokalen netz aus einer access-db ... klappt wunderbar.
der aufbau zu oracle dauert so seine 10 sekunden ....
odbc jeweils neu aufbauen ..... da geht die akzeptanz in den keller. aber jetzt flutscht es...
und weil es hier um beta geht: hab es mit oracle, access, d-base durchgepielt .... keine probleme ...
|
|
|