Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Правильно ли составлен запрос SQL?


aglar ©   (2008-12-07 13:53:00) 

Странное дело, этот кусок кода работает как нужно

query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from buyers where lower(name) = '''+lowercase(sale_buyer_combo.text)+'''');
query1.Open;
if query1.RecordCount <= 0 then
  buyers_table.InsertRecord([sale_buyer_combo.Text, sale_total_summa_edit.Value - sale_payed_summa_edit.Value])
else
 begin
 query3.Close;
 query3.SQL.Clear;
 query3.SQL.Add('update buyers set debt='''+floattostr(query1.FieldValues['debt']+ sale_total_summa_edit.Value - sale_payed_summa_edit.Value)+''' where lower(name) = '''+lowercase(sale_buyer_combo.Text)+'''');
 query3.ExecSQL;
end;


а этот, вроде ничем не отличающийся, ничего не выбирает из таблицы, не смотря на то, что запись с именем такого водителя в ней присутствует:

query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from drivers where lower(name) = '''+lowercase(sale_driver_combo.text)+'''');
query1.Open;
if query1.RecordCount <= 0 then
  drivers_table.InsertRecord([sale_driver_combo.Text, sale_delivery_edit.Value - sale_delivery_payed_summa_edit.Value])
else
 begin
 query3.Close;
 query3.SQL.Clear;
 query3.SQL.Add('update drivers set debt='''+floattostr(query1.FieldValues['debt']+ sale_delivery_edit.value - sale_delivery_payed_summa_edit.Value)+''' where lower(name) = '''+lowercase(sale_driver_combo.Text)+'''');
 query3.ExecSQL;
end;


где ошибка?


Правильный$Вася   (2008-12-07 21:57:00) [1]

коммит не забывай
да и вообще - неясно, зачем вставлять в таблицу, а смотреть потом в результаты выборки, выполненной ДО вставки?

+ использовать параметры


aglar   (2008-12-07 16:54:00) [2]

Да, еще вот что..

drivers_table.InsertRecord([sale_driver_combo.Text, sale_delivery_edit.Value - sale_delivery_payed_summa_edit.Value])

После этого данные в RxDbgrid не обновляются до перезапуска программы. Нужно ли командно обновить данные в таблице или же..?


aglar   (2008-12-07 16:43:00) [3]

Спасибо, работает:)


Johnmen   (2008-12-07 14:22:00) [4]


> aglar ©   (07.12.08 13:53) 

Настоятельно рекомендуется к прочтению и осознанию:
1. Раздел хелпа Currency and date/time formatting variables,   DecimalSeparator
2. http://www.delphikingdom.com/asp/viewitem.asp?catalogid=374


{RASkov}   (2008-12-07 14:04:00) [5]

> [1] aglar ©   (07.12.08 14:00)

AnsiLowerCase()


aglar   (2008-12-07 14:00:00) [6]

Ооо....

showmessage(lowercase('Проверка'));

выводит 'Проверка'

ничего не понимаю....


Наверх

Титульная страница Поиск, карта сайта Написать письмо