Turbo C, Firebird, Null

Turbo C, Firebird, Null
2007-04-02T15:45:47+02:00
2007-04-02T16:25:35+02:00
2022-11-04T01:42:02+01:00
csuri
TurboC, Firebird, Interbase komponensek.

Van egy tárolt eljárás, aminek az egyik bemenő paramétere INTEGER típusú, neve: CM3 - ez egy táblába kerül ba értékként.
Van egy TIBStoredProc, amelybe a tárolt eljárás és paraméterei be vannak töltve. A paraméter adatai:
DataType = ftSmallInt
ParamType = ptInput
Value = üres
Az Object Inspectorban van a Value-hoz egy Type, amely Unassigned.

Azt szeretném elérni, hogy ebbe a paraméterbe NULL érték kerüljön.
Ha beírom a NULL-t a paraméterbe:
Proc->ParamByName("CM3")->Value = NULL;
Akkor a táblába 0 kerül, nem NULL.

Ha viszont az OI-ben a Value-hoz Type értékének NULL-t adok meg és utána nem írok be értéket a paraméterbe, akkor az adatbázisba - helyesen - NULL kerül.

A gond csak az, hogy nekem ezt kódból kellene megoldanom futás közben, nem az OI segítségével, viszont így nem találom ezt a Type tulajdonságot.

A kérdés az, hogy ez a tulajdonság micsoda, és miért nem lehet ezt kódban megtalálni, illetve - ha ez a tulajdonság nincs meg - van e más módszer a NULL beírására.
Mutasd a teljes hozzászólást!
Proc->ParamByName("CM3")->Clear;
Mutasd a teljes hozzászólást!

  • Igen ez az, köszönöm.

    Annyit még azért a teljesség kedvéért hozzátennék, hogy a Clear csak akkor műxik ha előbb valami értéker adunk a paraméternek, különben hibát dob. Vagyis:
    Proc->ParamByName("CM3")->Value = 0; Proc->ParamByName("CM3")->Clear;
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd