Announcement

Collapse
No announcement yet.

ORACLE-direkt SQL-Parmater merkwürdig !!!

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ORACLE-direkt SQL-Parmater merkwürdig !!!

    folgende Abfrage bei einer ORACLE-OCI-Verbindung(8.1.5)
    SELECT * FROM u_eal1.eingang1 WHERE eingnr = EingangNr

    Einstellung in DbQuery (Delphi 5.0 entp.,BDE5.11) :
    DataType : ftString
    Name : pEingangNr
    ParamType: ptUnknown
    Value : 4
    Type : Byte

    Wenn man DataType auf (eigentlich anzunehmen) Integer setzt,
    gibt es Error : ORA-01722 Ungültige Zahl

    Was auch funktioniert:
    With Query1 do
    begin
    SQL.Clear;
    SQL.Add('SELECT * FROM u_eal1.artikelmeth2 where qamatch = QAMATCH ');
    Prepare;
    ParamByName('pQAMATCH').AsString := '82125260';
    Open;

    Das Feld qamatch ist INTEGER !
    Wieso muß ich das hier als String übergeben ?

  • #2
    Hallo Wolf,

    das ist wahrscheinlich wieder so eine Eigenheit von Oracle. Ich weiß es nicht hundertpro aber Oracle behandelt wahrscheinlich alle Parameter als Strings und führt zur Laufzeit eine Typkonversion durch. Deshalb ist in Oracle auch eine Abfrage Select * from Tabelle where Datum='01.01.2001' (Feld Datum ist vom Typ Date!!!) möglich - jeder andere würde sich sicherlich beschweren.

    Gruß Fal
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment

    Working...
    X