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