Конференция "Базы" » Не выполняется SQL запрос с инструкцией Where
 
  • JeryCar2012 (03.05.12 13:23) [0]
    Здравствуйте!
    Ерунда какая-то – вроде до недавнего времени все работало, а теперь неожиданно перестало. Например, я пишу  такой код:
    [code]
     FrmMain.ADOQuery1.SQL.Clear;
      FrmMain.ADOQuery1.SQL.Add('Update Orders set COL5='+Chr(39)+'привет'+Chr(39));
      FrmMain.ADOQuery1.ExecSQL;

      FrmMain.ADOQuery1.SQL.Clear;
      FrmMain.ADOQuery1.SQL.Add('Update Orders set COL5='+Chr(39)+'Пока'+Chr(39)+' Where COl4 is NULL');
      FrmMain.ADOQuery1.ExecSQL;{}
      [/code]

    Присоединен к базе данный Access. Так вот первая часть {1} выполняется и работает нормально, а вот вторая не работают – т.е. при компиляции ошибки не возникает, но после выполнения кода слова  'Пока'в столбце COL5 не появляются, хотя я вижу в Access что в столбце Col4 – есть пустоты…

    См. рисунок
    http://pixs.ru/showimage/000jpg_2182839_4697711.jpg

    В чем дело, подскажите?
  • Ega23 © (03.05.12 13:33) [1]
    '' <> null
  • JeryCar2012 (03.05.12 13:46) [2]
    Не работает! в этом случае "Пока" появляется везде....
    Глючит SQL чтоли?
  • Anatoly Podgoretsky © (03.05.12 13:51) [3]
    > JeryCar2012  (03.05.2012 13:46:02)  [2]

    Самое последние дело катить бочку нa SQL
  • JeryCar2012 (03.05.12 13:54) [4]
    А первое тогда какое?
  • sniknik © (03.05.12 13:57) [5]
    > '' <> null
    > Не работает! в этом случае "Пока" появляется везде....
    это ответ, а не кусок кода для вставки
    перевод - "пустая строка не равна/не то же самое, что отсутствие строки"

    > Глючит SQL чтоли?
    скорее ты.
  • sniknik © (03.05.12 13:57) [6]
    > А первое тогда какое?
    на себя. как все нормальные программисты. в 99% это будет верно.
  • Медвежонок Пятачок © (03.05.12 14:23) [7]
    'Пока'в столбце COL5 не появляются,

    не появляются потому что условие where возвращает false.
  • Медвежонок Пятачок © (03.05.12 14:32) [8]
    хотя я вижу в Access что в столбце Col4 – есть пустоты…
    тогда так и составляй запрос - заапдейтить везде, где есть "пустоты", а не там, где поле нулл.
  • Плохиш © (03.05.12 15:24) [9]

    > > А первое тогда какое?
    > на себя. как все нормальные программисты.

    В связи с отсутствием программиста, оно сразу перешло к последнему...
  • Anatoly Podgoretsky © (03.05.12 15:45) [10]
    А оно зависло между первым и последним.
  • Ega23 © (03.05.12 20:11) [11]
    update orders set col5='ttt' where coalesce(col4, '') = ''

 
Конференция "Базы" » Не выполняется SQL запрос с инструкцией Where
Есть новые Нет новых   [119662   +92][b:0][p:0.001]