ODBC von Alaska

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

Moderator: Moderatoren

Antworten
Benutzeravatar
andreas
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1902
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Hat sich bedankt: 4 Mal
Kontaktdaten:

ODBC von Alaska

Beitrag von andreas »

Hallo Leute,

wer arbeitet mit der ODBC-Schnittstelle von Alaska.

Ich habe ein Problem mit dem Zugriff auf die Memo-Felder.

Die Daten liegen auf dem MS SQL-Server 2000. Bis jetzt hatte ich das Problem auch schon aber nicht so heufig. Nach dem der SQL-Server letzte Woche von SP3 auf SP4 upgedated wurde, kommt das Problem zu oft.

Die Daten werden mit dem Befehl änlich diesem

Code: Alles auswählen

SQL "Select * From Test;"
abgerufen.
Wenn ich danach AppBrowse aufrufe, sehe ich alle Daten. So bald das Programm auf die Memofelder in den Datensätzen zugreift, kommt es zu Fehlermeldung.

Z.B. in der Zeile:

Code: Alles auswählen

IF ! empty( (DBPALMHIST)->notiz )
bricht das Programm mit folgender Meldung ab:

Code: Alles auswählen

------------------------------------------------------------------------------
FEHLERPROTOKOLL von "C:\Abgleich\AbgleichSQL.EXE" Datum: 23.05.2006 
11:26:08

Xbase++ Version     : Xbase++ (R) Version 1.90.331
Betriebssystem      : Windows 2000 05.00 Build 02195 Service Pack 4
------------------------------------------------------------------------------
oError:args         :
           -> NIL
oError:canDefault   : N
oError:canRetry     : J
oError:canSubstitute: N
oError:cargo        : {NIL,         -1, [00000][0][Alaska 
Software][ODBCDBE]Operation failed.}
oError:description  : Fehler beim Lesen
oError:filename     :
oError:genCode      :         73
oError:operation    : notiz
oError:osCode       :          0
oError:severity     :          2
oError:subCode      :       8037
oError:subSystem    : BASE
oError:thread       :         16
oError:tries        :          1
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Aufgerufen von ABFRAGE:KUNDENEMAIL(898)
Aufgerufen von (B)ABFRAGE:PROZESSE(264)
Ich habe schon versucht, den Fehler mit BEGIN SEQUENCE abzufangen. Das funktioniert auch, aber mein Thread bleibt dabei stehen und die Daten werden nicht weiter verarbeitet, als ob das Programm auf dem Datensatz stehen bleibt.

Der Test mit XBase 1.9 hat auch die gleichen Ergebnisse.

Hat jemand eine Idee?
Gruß,

Andreas
VIP der XUG Osnabrück
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo,

wie groß sind denn die Daten die du so anforderst (* = alle Felder, alle Datensätze ...) ?
Tritt der Fehler auch auf, wenn nur wenige Datensätze zurückgeliefert werden und das Memofeld wenige Daten enthält ?

Du könntest auch die DEMO von SQLExpress saugen und mit dieser den Zugriff prüfen um auszuschließen, dass der ODBC Treiber der Datenbank einen Fehler hat. Oder ein anderes Program, das auf ODBC zugreifen kann.

Ich habe bisher keine Memofelder in SQL-Servern (MySQL) genutzt.
Gruß
Hubert
Benutzeravatar
andreas
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1902
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Hat sich bedankt: 4 Mal
Kontaktdaten:

Beitrag von andreas »

Ich rufe nur ein Teil der Sätze auf. Die werden mit WHERE-Klausel ausgefiltert.
Den Beispielbefehl habe ich nur so abgebildet, um zu zeigen, wie ich die Daten überhaupt aufrufe.
Auf die Daten habe ich schon mit Enerpreismanager und Query Analyzer von MS zugegriefen. Wie gesagt, kann XBase die daten in APPBROWSE auch anzeigen, aber so bald ich die Felder anspreche, kopmmt es zu Fehler.
Allerdings kommt es nicht bei allen Sätze. In dem Text habe ich aber auch nichts gefunden. Früher konnte es vorkommen, dass irgendwelche Sonderzeichen in den Befehlen nicht angenommen wurden. Das habe ich aber schon lange beseitigt.
Gruß,

Andreas
VIP der XUG Osnabrück
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hi,

APPBrowse kann die Memo-Felder darstellen aber beim direkten Aufruf knallt es ... wahrscheinlich nutzt APPBrowse nicht den Namen sondern die Feldnummer ... :?:

Tritt der Fehler mit FieldGet(x) auch auf ?
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo Andreas,

auf dem Alaska Forum habe ich gerade etwas über MEMO Probleme bei SQL Servern gelesen. War das von dir ? Wenn nein könnten die - hoffentlich erscheinenden - Antworten für dich von Interesse sein.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hi,

insgesamt lautet meine Empfehlung aber dennoch SQLExpress downloaden, testen und wenn es (leichter) geht (wie bei mir) bestellen.
Gruß
Hubert
Benutzeravatar
andreas
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1902
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Hat sich bedankt: 4 Mal
Kontaktdaten:

Beitrag von andreas »

Tritt der Fehler mit FieldGet(x) auch auf ?
Das werde ich gleich ausprobieren.
auf dem Alaska Forum habe ich gerade etwas über MEMO Probleme bei SQL Servern gelesen. War das von dir ?
Wenn du den Eintrag von 23.05.2006 unter Bugreport meinst, dann ist es von mir. Da sind aber bis jetzt keine Antworten gekommen.
Gruß,

Andreas
VIP der XUG Osnabrück
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo,

ich war mir nicht sicher, da der Anmeldename unterschiedlich war, die Fehlerbeschreibung aber doch ähnlich geklungen hat.

PS Hast du mal in der Alaska KB nachgesehen ?
Oder in den alten ODBC Meldungen gestöbert, der Fehler muss doch bekannt sein ...

Ich weiß nicht mehr, wegen welcher Fehler ich damals die ODBCDBE verworfen habe.
Gruß
Hubert
Benutzeravatar
andreas
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1902
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Hat sich bedankt: 4 Mal
Kontaktdaten:

Beitrag von andreas »

Hallo Hubert,

dein Vorschlag
Tritt der Fehler mit FieldGet(x) auch auf ?
hat funktioniert.
Es reicht aus, wenn ich ein mal das Feld vor meinem vorherigen Code mit FieldGet anspreche, damit mein Code ohne Fehler durchläuft.
Gruß,

Andreas
VIP der XUG Osnabrück
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo Andreas,

es freut mich, dass ich helfen konnte, aber Sachen gibts :?:
Gruß
Hubert
Antworten