Seite 1 von 2

Suche das Gegenstück zu DatabaseError()

Verfasst: 22.02.2009 11:56
von TheSaint
Hallo Zusammen,

ich nutze folgenden Befehl um mir Fehler anzeigen zu lassen,
die passieren können, wenn ein SQL - Befehl fehlerhaft ausgeführt wurde.

Code: Alles auswählen

MessageRequester("Fehler", "Kann die folgende Abfrage nicht ausführen: "+DatabaseError())
Gibt es eigentlich auch einen Befehl, der mir anzeigt, das der SQL - Befehl erfolgreich ausgeführt wurde und wieviele Datensätze bearbeitet wurden?

Schon mal vielen Dank für Eure Hilfe.

Re: Suche das Gegenstück zu DatabaseError()

Verfasst: 22.02.2009 13:39
von Kiffi
Erfolg oder Misserfolg einer Funktion kannst Du ja mit dem Rückgabewert auslesen.

Code: Alles auswählen

If DatabaseQuery(...
  ; Ausgabe "DatabaseQuery erfolgreich"
Else
  ; Ausgabe DatabaseError()
EndIf

Code: Alles auswählen

If DatabaseUpdate(...
  ; Ausgabe "DatabaseUpdate erfolgreich"
Else
  ; Ausgabe DatabaseError()
EndIf
einen Rückgabewert wie RecordsAffected unter ADO gibt es hier AFAIK
leider nicht.

Grüße ... Kiffi

Re: Suche das Gegenstück zu DatabaseError()

Verfasst: 22.02.2009 14:44
von TheSaint
Hallo Kiffi,
Kiffi hat geschrieben: einen Rückgabewert wie RecordsAffected unter ADO gibt es hier AFAIK
leider nicht.
Tja, schade, genau das habe ich gesucht.

Aber, vielen Dank für Deine Hilfe / Antwort.

Re: Suche das Gegenstück zu DatabaseError()

Verfasst: 22.02.2009 16:23
von Kiffi
TheSaint hat geschrieben:Tja, schade, genau das habe ich gesucht.
wenn es ein Feature ist, auf das Du nicht verzichten kannst, dann könntest
Du Dich mit COMate vertraut machen. Hiermit kann man ADO (und all die
anderen schönen COM-Komponenten) in PB nutzen.

Mit ADOmate (die auf ADO spezialisierte COMate-Version) bräuchtest Du
auch gar nicht so viel in Deinem jetzigen Code ändern. In ADOmate müsste
man auch derzeit nur eine Zeile ändern, damit RecordsAffected
zurückgegeben wird (ich muss mit srod noch palavern, ob er es 'ab Werk'
mit einbaut).

Falls Interesse besteht, kann ich Dir gerne weitere Infos geben.

Grüße ... Kiffi

Verfasst: 22.02.2009 16:27
von Kaeru Gaman
[ot]
ADO, die Datenbank mit der Goldkante...
[/ot]

Verfasst: 22.02.2009 16:32
von Kiffi
Kaeru Gaman hat geschrieben:[ot]
ADO, die Datenbank mit der Goldkante...
[/ot]
[ot]
Achten Sie auf die Goldkante - es lohnt sich!
[/ot]

Re: Suche das Gegenstück zu DatabaseError()

Verfasst: 23.02.2009 00:28
von TheSaint
Hallo Kiffi,
Kiffi hat geschrieben: Falls Interesse besteht, kann ich Dir gerne weitere Infos geben.
Ja ich hätte interesse daran. Ist es ein kostenpflichtiges Tool?

Re: Suche das Gegenstück zu DatabaseError()

Verfasst: 23.02.2009 02:36
von Kiffi
TheSaint hat geschrieben:Ist es ein kostenpflichtiges Tool?
nein. Es handelt sich sowohl bei COMate als auch bei ADOmate und Include-
Dateien von srod aus dem englischen Forum, welche hier heruntergeladen
werden können:

http://www.nxsoftware.com/

Das für Dich primär interessante ADOmate ist eine auf Datenbank-
operationen spezialisierte Version und benötigt COMate als Grundlage.
Lade Dir am besten also beide Archive herunter (auf die PB-Version
achten!)

Mit ADOmate bist Du in der Lage, im PB-Style auf Datenbanken via
ADO (also ohne ODBC) zuzugreifen.

In beiden Archiven findest Du viele Beispiele, anhand deren Du schnell
erfassen kannst, wie die Befehle zu benutzen sind. Ich meine in
Erinnerung zu haben, dass Du aus der VB-Ecke kommst. Wenn ja, dann
wirst Du Dich sehr schnell an den neuen Befehlssatz gewöhnen (vor
allem an den, der Dir durch COMate zur Verfügung steht) .

Grüße ... Kiffi

Re: Suche das Gegenstück zu DatabaseError()

Verfasst: 23.02.2009 12:50
von TheSaint
Hallo Kiffi,

erstmal vielen Dank für Deine schnelle und umfangreiche Antwort.
Kiffi hat geschrieben: Mit ADOmate bist Du in der Lage, im PB-Style auf Datenbanken via
ADO (also ohne ODBC) zuzugreifen.
Hm, hier muss ich erstmal sehen, ob ich auf eine Firebird Datenbank zugreifen kann.
Auf eine Access Datenbank wird es wohl kaum Probleme geben.
Kiffi hat geschrieben: In beiden Archiven findest Du viele Beispiele, anhand deren Du schnell
erfassen kannst, wie die Befehle zu benutzen sind. Ich meine in
Erinnerung zu haben, dass Du aus der VB-Ecke kommst. Wenn ja, dann
wirst Du Dich sehr schnell an den neuen Befehlssatz gewöhnen (vor
allem an den, der Dir durch COMate zur Verfügung steht) .
Ja, :) Du ein gutes Gedächtnis.
Jedoch habe ich Access benutzt um auf eine Firebird Datenbank zugriff zu nehmen.
Mein bestreben ist es ja von Access weg zu kommen und die Funktionen in PB umzusetzen (Ja, ich weis, wird schwierig, was Reports Module,... angeht).

So, dann schau ich mir das erstmal alles an und versuche es mal umzusetzen, bevor ich den bereits vorhandenen Code, mittlerweile so 1500 Zeilen ändere. :)

Nochmals vielen Dank für Deine Hilfe.

Re: Suche das Gegenstück zu DatabaseError()

Verfasst: 23.02.2009 12:57
von Kiffi
TheSaint hat geschrieben:So, dann schau ich mir das erstmal alles an und versuche es mal umzusetzen, bevor ich den bereits vorhandenen Code, mittlerweile so 1500 Zeilen ändere. :)
ja, das ist sowieso empfehlenswert. ;-)

Wobei sich die Änderungen in Grenzen halten, wenn Du ADOmate
verwendest. Du musst lediglich die Datenbank-Aufrufe ein wenig
abändern:
Meinereiner hat geschrieben:PB: OpenDatabase()
ADOmate: ADOmate_OpenDatabase()

PB: DatabaseQuery()
ADOmate: ADOmate_DatabaseQuery()

PB: DatabaseUpdate()
ADOmate: ADOmate_DatabaseUpdate()

etc.


Für Firebird gibt es IMHO einen ADO-Treiber.

Grüße ... Kiffi