Aptem |
Отправлено: 11.11.2004, 15:42 |
|
Мастер участка
Группа: Участник
Сообщений: 349
|
Привет, всем !
У меня такая проблема:
Есть таблица в базе, есть поле типа text и там есть какие-то значения. Есть соединение по ADO, использую следующий запрос:
CODE | DELETE FROM goods WHERE barcode = :BARCODE; |
... по идеи все нормально, только ничего не происходит
Попробывал сделать все руками:
CODE | DELETE FROM goods WHERE barcode = 123; |
... но тоже ничего не происходит, оказывается нужно было так:
CODE | DELETE FROM goods WHERE barcode = '123'; |
... так как тип text!
А как это реализовать в ADO, ':BARCODE' и :'BARCODE' не подходит.
Спасибо за внимание.
|
|
Gedeon |
Отправлено: 11.11.2004, 16:38 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Когда в запросы Вы ставите : перед словом — это означает, что Вы используете параметр с названием этого слова перед :
Перед вызовом
CODE |
ADO->ExecSQL(); // || ADOCommand->Execute();
|
необходимо присвоить значение этому параметру
CODE |
ADO->Parameters->ParamByName("BARCODE")->Value = '123';
|
А потом вызывать выполнение запроса.
И еще если это случайное совпадение ладно, а так не надо хранить числа в типе текст, где-то в форуме обсуждалось.
|
|
Aptem |
Отправлено: 11.11.2004, 19:02 |
|
Мастер участка
Группа: Участник
Сообщений: 349
|
Насчет присвоения значений парметрам я знаю !!!
Вопрос в том, как быть если значение имеет тип строка ???
|
|
Valdemar |
Отправлено: 12.11.2004, 08:38 |
|
Мастер участка
Группа: Участник
Сообщений: 433
|
QUOTE | Вопрос в том, как быть если значение имеет тип строка ??? |
Для параметров можно указать тип значений. |
|
Aptem |
Отправлено: 12.11.2004, 13:37 |
|
Мастер участка
Группа: Участник
Сообщений: 349
|
Наконец-то разобрался !!! Ошибка как обычно была в ДНК. Забыл ExecSQL () вызвать, поэтому и не работало ничего !!!
На самом деле для параметров нет разницы какого типа данные в таблице !
Спасибо за ответы.
|
|