Einzelnen Beitrag anzeigen

bgeltenpoth

Registriert seit: 24. Jan 2012
15 Beiträge
 
Delphi XE7 Enterprise
 
#1

dbExpress Sybase TSQLStored Proc ...oder was mach ich falsch?

  Alt 2. Mär 2012, 16:14
Datenbank: Sybase • Version: diverse • Zugriff über: diverse
Hallo zusammen...
Ich muss (bzw. habe schon vor Jahren) ein Tool geschrieben, das bestimmte Business Objekte aus einer Sybase Datenbank extrahiert, manipuliert und in eine andere Sybase Datenbank schreibt. Die Datenbank ist von einem 3rdParty Entwickler, mein Tool ist ein Add On für unsere deutschen Kunden.
Die ursprünglichen Datenbanken waren immer Sybase ASE 11.9.2. Für die Anwendung habe ich eine DAO (Data Access Objects) Factory erstellt, die BDE und SQL Links benutzt. Das hat wunderbar funktioniert.
Nun kommen bei den Datenbanken immer mehr Sybase ASE 12.5.4 (ASE 15 ist noch kein Thema) zum Einsatz. Solange auf dem jeweiligen Rechner auf dem mein Tool läuft, noch ein Sybase 11.9.2 Client installiert ist, funktioniert noch alles wunderbar. Atuelle Rechner sind aber schon mit dem Sybase 12.5.4 Client ausgerüstet, damit bin ich mit der BDE raus. Dazu kommt das ich aber trotzdem immer noch auch auf Sybase ASE 11.9.2 Datenbanken zugreifen muss.
Gut, benutze ich also dbExpress. Schreib ich mir halt eine neue Factory die mit dbExpress arbeitet. Die funktioniert nun auch, ABER:
Beim Ausführen von StoredProcedures mit dbExpress auf einem ASE 11.9.2 erhalte ich eine Exception wenn die Parameter abgefragt werden (ParamCheck:=TRUE). Offensichtlich wird da eine Query benutzt die für diesen Servertyp fehlerhaft ist. Gut, also ParamCheck auf FALSE setzen und alle Parameter von Hand erstellen, z.B. mit:
Code:
   
Dataset.ParamCheck:=FALSE;
Dataset.SchemaName:='dbo';
Dataset.CommandText:='pr_class_exists';
Dataset.Params.Clear;
Dataset.Params.CreateParam(ftInteger,'@class_id',ptInput).AsInteger:=0;
Dataset.Params.CreateParam(ftInteger,'@bexists',ptOutput);
Beim Ausführen erhalte ich dann aber eine Exception "DBX-Fehler: Ungültige Genauigkeit". Nun gibt es ja das Precision Property bei TParam, aber was muss darein?
Alternativ habe ich auch schon ADO versucht, aber der OLE DB Provider für ASE 12 scheint auch nicht toll zu sein. Auch da bekomme ich Probleme beim Aufruf von Stored Procedures.
Dann hab ich mir noch AnyDAC angeschaut, die haben aber gar keine Sybase ASE Unterstützung. Hat noch jemand eine Idee?
Welche Alternativen gibt es noch für den Zugriff auf Sybase ASE 11 UND 12 von einem Rechner mit ASE 12.5.4 Client?
Was kann man gegen die Exception "DBX-Fehler: Ungültige Genauigkeit" tun?

Im vorraus schonmal "Danke Schön" für jeden Input
Benedikt Geltenpoth
  Mit Zitat antworten Zitat