Objekt parametr je nesprávně definován

Autor Téma: Objekt parametr je nesprávně definován  (Přečteno 8359 krát)

Offline mjseven

  • Mladík
  • **
  • Příspěvků: 65
  • Karma: 6
    • Verze Delphi: D7, D2006, XE2, Lazarus
Re:Objekt parametr je nesprávně definován
« Odpověď #15 kdy: 23-12-2012, 13:50:11 »
V MSSQL existuje příkaz ISNULL().
Dotaz pro vyhledávání select * from tabulka1 where vysledek='' by pak vypadal takhle:


select * from tabulka1 where ISNULL(vysledek, '') = ''

Což znamená, že v případě kdy pole je NULL tak má místo NULL použít hodnotu ''. Pak ti ten dotaz vrátí vše co má v poli výsledek NULL nebo ''
 


Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2165
  • Karma: 116
    • Verze Delphi: D2007, XE3, DX10
Re:problem s parametrizovanym query na sqlite
« Odpověď #16 kdy: 23-12-2012, 14:59:27 »
Jak by slo tento problem vyresit ? potreboval abych se parametrizovane ukladaly prazdne retezce a ne hodnoty NULL. Asi to souvisi uz s deklaraci databaze, kdybych tam specifikoval ze hodnota nemuze byt nulll.  ale rekneme, ze to nemuzu zmenit u existujicich databazi plnych dat
Uz jsem s SQLite dlouho nic nedelal a kdyz, tak pres vlastni komponenty.

Ale Sqlite3 tu mam ve verzi 3.5.6 a pomoci nej ulozim prazdny string do DB jako prazdny string i do pole deklarovaneho jako NULL, takze to budou mit na svedomi nejspis komponenty, ktere s SQLite pouzivas - asi nejjednoduzsi bude protrasovat, co ty komponenty s hodnotu parametru delaji a zjistit, jake jsou moznosti (jine komponenty, opravit stavajici, volat primo Sqlite3 API resp. napsat si vlastni)

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2165
  • Karma: 116
    • Verze Delphi: D2007, XE3, DX10
Re:Objekt parametr je nesprávně definován
« Odpověď #17 kdy: 23-12-2012, 15:06:50 »
V MSSQL existuje příkaz ISNULL().
Tak ona je to funkce a ne prikaz  ;) a Sqlite ji umi taky http://www.sqlite.org/lang_corefunc.html#ifnull. Ale funguje i obycejna koalice
Kód: SQL [Vybrat]
  1. SELECT * FROM tabulka1 WHERE COALESCE(vysledek, '') = ''


Offline rob.

  • Nováček
  • *
  • Příspěvků: 36
  • Karma: 0
Re:Objekt parametr je nesprávně definován
« Odpověď #18 kdy: 23-12-2012, 15:29:15 »
diky za tipy, ifnull by to mohlo resit akoratze uzivatele maji ulozeny svoje prednastavene filtry a ty by se musely vsechny upravit protoze jinak by jim polovina filtru (ktere maji ulozeny uz treba rok) najednou s aktualizovanou verzi programu prestala fungovat. Proto budu primarne zkouset to jak ukladat prazdne retezce jako retezce a ne NULL, rozpitvat komponenty (pouzivam Aducom) je mozna cesta ale na to jsem dost amater. Neslo by to pres nejaky trigger ? Nebo je to moc "prasecina"? Jakoze by ten trigger automaticky pri update zaznamu zmenil null na ''.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2165
  • Karma: 116
    • Verze Delphi: D2007, XE3, DX10
Re:Objekt parametr je nesprávně definován
« Odpověď #19 kdy: 23-12-2012, 16:48:40 »
Neslo by to pres nejaky trigger ? Nebo je to moc "prasecina"? Jakoze by ten trigger automaticky pri update zaznamu zmenil null na ''.
Klidne bych to before triggerem udelal - akorat asi budou muset (uz si to nepamatuju) byt dva: jeden pro insert, druhy pro update.

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Upozornění: do tohoto tématu bylo naposledy přispěno před 120 dny.
Zvažte prosím založení nového tématu.

Jméno: E-mail:
Ověření:
Datový typ v Delphi, který má True a False: