AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken dbExpress Sybase TSQLStored Proc ...oder was mach ich falsch?
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von bgeltenpoth · begonnen am 2. Mär 2012
Antwort Antwort
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, 17: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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz