SQL Treiber

alles was zunächst nicht kategorisierbar ist

Moderator: Moderatoren

Antworten
Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 440
Registriert: Mo, 30. Mai 2011 15:06
Danksagung erhalten: 1 Mal

SQL Treiber

Beitrag von Benz »

Hi,

Bisher bin ich mit den Dbase Datenbanken ganz gut zurecht gekommen, allerdings stoße ich jetzt immer öfter auf Anfragen von Kunden, ich solle doch etwas mit der SQL-Datenbank programmieren.
In SQL kenne ich mich einigermaßen aus, allerdings habe ich keinen blassen Schimmer wie ich SQL an Xbase anbinden kann.
Von ODBC habe ich auch schonmal was gehört, aber wie genau das mit Xbase funktionieren soll, ist mir nach einiger Zeit, die ich mit der Forumssuche verbracht habe, leider immernoch schleierhaft.

Wenn der Zugriff auf SQL nicht mit nativen Mitteln funktioniert, wo bekomme ich dann einen Treiber her, mit dem ich auf SQL-Datenbanken zugreifen kann?
Kann dazu jemand eine Empfehlung aussprechen?
Es wäre außerdem sehr nett von euch, wenn ihr mir erklären könnten, wie man das ganze dann mit Xbase verwendet :D

MfG
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: SQL Treiber

Beitrag von georg »

Hallo,


also, SQLExpress ist ein Interface zu ODBC, d.h. Xbase++ spricht über SQLExpress (das in Xbase++ geschrieben ist) mit dem ODBC-Treiber, und der wiederum mit der Datenbank.

Variante 2: ODBCDBE - ist eine Umsetzung des ODBC-Interfaces auf die Xbase-Schiene (aus meiner Sicht eher weder was Halbes noch was Ganzes);

Variante 3: ADS - hier kannst Du mit den bekannten Xbase-Befehlen mit der ADS-Datenbank reden;

Variante 4: Hector Peroza hat einen Xbase++-Wrapper für die LIBMYSQL.dll geschrieben, mit der man mit Xbase++-Befehlen auf einen MySQL-Server zugreifen kann.

Variante 4a: Hector Peroza wollte auch für PostgreSQL den Wrapper anpassen.

Variante 5: wenn Artica mal kommt, kannst Du damit unter Verwendung der normalen Xbase++-Syntax mit total verhuntzten PostgreSQL-Tabellen arbeiten.


Ich arbeite mit Hector's Klasse und habe etliche Programme bereits auf MySQL umgestellt.

Das kann dann so aussehen:

Code: Alles auswählen

oResult := MyResult():new(oCon, , "Kunden")
cSelect := "SELECT * FROM KUNDER ORDER BY PLZ, NAME"
oResult:openRecord(cSelect)
WHILE !oResult:EoF()
   ? oResult:FieldGet(1)
   ? oResult:FieldGet("Telefon")
   oResult:skip(1)
END
oResult:close()
Oder:

Code: Alles auswählen

cSelect := "UPDATE KUNDEN SET TElefon = '01234-9876' WHERE KUNDENNummmer = " + cKundenNummer
nError := oCon:realQuery(cSelect)
if nError <> MYSQL_OK
   ConfirmBox(...)
ELSE
   ...
ENDIF
Weitere Antworten morgen, mein Bett ruft ...
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: SQL Treiber

Beitrag von AUGE_OHR »

Benz hat geschrieben:Wenn der Zugriff auf SQL nicht mit nativen Mitteln funktioniert, wo bekomme ich dann einen Treiber her, mit dem ich auf SQL-Datenbanken zugreifen kann?
wenn es eine API gibt (an die man ran kommt) dann kommt man auch native an den SQL Server.
ODBC Interface, welches die API anspricht, gibt es auch von jedem "ordentlichen" SQL Server.

die API stellt in Prinzip nur die Connection her und überträgt Querys -> Resultset ... nicht mehr !
das Resultset selbst enthält aber nun noch keine "Daten" sondern nur ein Tuple was hinweist "wo" du die Daten für jedes Element findest.

man könnte es vergleichen mit einer Array Auswahl wo du nur Nummer bekommt und nicht den Inhalt.
nun könnte man mit den Nummer den Inhalt in ein "echtes" Array um-schaufeln ... aber wenn du ein grosses (schlecht !) Resultset hast ...

SQL Express oder die Class von Hector bieten dir nun eine Class zum "auswerten" und navigieren direkt in deinem Resultset (Dataset).

das "Geheimnis" von SQL ist nun die Query welche du an den SQL Server abschickst.
pgDBE in Xbase++ v2.x versucht nun zur Laufzeit aus jedem Xbase DBE Befehl eine SQL Query zu machen ...
gruss by OHR
Jimmy
Antworten