ODBC

19/04/2010 - 12:15 von Walter Sponagel | Report spam
Hallo ich habe noch nie in Foxpro mit ODBC gearbeitet und soll jetzt auf
ODBC Daten zugreifen.
Aktuell von einem Kraftwerk, das Daten über eine ODBC Schnittstelle zur
Verfügung stellt. Im Moment werden die Daten in eine EXCEL Datei
geschrieben.

Hat jemand Infos wie ich Zugriff auf ODBC Daten bekomme. Aus der Hilfe werde
ich leider nicht so recht schlau wie ich da vorgehen muss.

Als Test möchte ich auf EXCEL Dateien über ODBC zugreifen. Wàre toll wenn da
jemand ein Beispiel für mich hat.

Danke Walter
 

Lesen sie die antworten

#1 tom knauf
19/04/2010 - 13:47 | Warnen spam
Moin, moin

also im Prinzip :

1) Installiere die ODBC Treiber für das Zielsystem (falls bei Dir noch nicht
vorhanden)

2) Lege mit dem ODBC Administrator oder Ausführen - odbcad32.exe eine
Verbindung zur Datenquelle (SQL, Access, Excel,) an, am besten unter
System-Dsn
( 64Bit Besonderheiten : bitte im Forum suchen (syswow\odbcad32 glaube ich)

3) Für erste Schritte lege eine Foxpro Datenbank an , erstelle mit dem
Assistenten eine Remoteview, dazu brauchst du die oben beschriebene
Verbindung und schon hast du lesenden / schreibenden Zugriff mit
Aktualisierung.
Die Remoteview kannst du unter Fox wie eine Tabelle öffnen (Use), zum
Zurückschreiben dient dann am Schluss Tableupdate() , das schreibt den
Inhalt der RV (lokale Daten) in die Datenquelle zurück.


Für Runaways :

Lies mal in der Hilfe (ab VFP8 glaube ich) unter Cursor Adapter und SQL
Passthrough
Hier ein Beispiel für Zugriff ohne Remote View auf Access, für Excel dürfte
nur der Connectionstring cconn anders lauten (connectstrings.com)

cMdb = cPath + "lohndaten.MDB"
cdbf = cPath + "lohndaten.DBF"
cconn = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" + cMdb +
";Exclusive=1;Uid=admin;Pwd="
nConn=Sqlstringconnect(cconn)
If nConn>0
=SQLExec(nConn,'Select * from tabellenname_in_mdb','dummy2')
Select dummy2
Copy To (cdbf) && soll gespeichert bleiben
SQLDisconnect(nConn)
Select dummy2
Use
Else
xfehler("Keine MDB Verbindung !")
Endif
Endif
Next
sele 0
use (cdbf)
brow

Hinweis
==Reichlich Lesestoff gibt es in der DFPUG, Stichwort Client-Server.

Excel Daten würde ich immer per Automation auslesen, RV,.. ist m.E. nach
mehr zum Lesen / Schreiben von SQL-Serverdaten, hier mal ohne Errorhandling,
nur die Basics :

try
oExcel = Getobject(,'Excel.Application')
catch
oExcel = CreateObject("Excel.Application")
endtry
if vartype(oExcel) != "O"
return .F.
endif
oExcel.visible = .F.
oWorkbook = oExcel.Application.Workbooks.Open("C:\temp\test.xls")
for nZeile = 1 to 2 && siehe oExcel.ActiveCell.SpecialCells(11).Address()
for nSpalte = 1 to 7
cwert = oexcel.cells.value(nZeile, nSpalte)
next
next
oexcel.quit()
release oworkbook, oexcel


HTH

Grüße aus Hamburg
tom



"Walter Sponagel" schrieb im Newsbeitrag
news:
Hallo ich habe noch nie in Foxpro mit ODBC gearbeitet und soll jetzt auf
ODBC Daten zugreifen.
Aktuell von einem Kraftwerk, das Daten über eine ODBC Schnittstelle zur
Verfügung stellt. Im Moment werden die Daten in eine EXCEL Datei
geschrieben.

Hat jemand Infos wie ich Zugriff auf ODBC Daten bekomme. Aus der Hilfe
werde ich leider nicht so recht schlau wie ich da vorgehen muss.

Als Test möchte ich auf EXCEL Dateien über ODBC zugreifen. Wàre toll wenn
da jemand ein Beispiel für mich hat.

Danke Walter

Ähnliche fragen