![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка при выполнении запроса
Any © (2010-12-10 14:01:00)Здравствуйте!
Есть БД MySQL, в ней таблица test с двумя полями id (integer) и data (varchar).
Пытаюсь сделать вставку записи при помощи TSQLDataSet.
SQLDataSet1.CommandText := 'insert into test(id, data) values(1, :data)';
SQLDataSet1.ParamByName('data').Value := Null; // или ''
SQLDataSet1.ExecSQL();
Выдается сообщение: dbExpress driver does not support the TDBXTypes.UNKNOWN data type. Vendor error message: .
Как вставить в поле таблицы значение Null или пустую строку?
Any (2010-12-11 21:25:00) [1]Всем большое спасибо за советы!
Оказалось я просто забыла про один из параметров, не присвоив ему значение (уж слишком их много). Всё работает.
Anatoly Podgoretsky (2010-12-10 16:28:00) [2]> Плохиш (10.12.2010 16:09:10) [10]
А вот это бы не помешало.
Anatoly Podgoretsky (2010-12-10 16:27:00) [3]
> Выдается сообщение: dbExpress driver does not support the
> TDBXTypes.UNKNOWN data type. Vendor error message: .
> Правда, теперь cообщение: dbExpress driver does not support
> the TDBXTypes.Variant data type. Vendor error message: .
Не стыкуется, значит ты что то сменил, сначала у тебя был неизвестный тип, потом стал вариантный.
А как можно говорить когда нет стабильности, когда все меняется?
Anatoly Podgoretsky (2010-12-10 16:27:00) [4]Теперь другой вопрос, а какой тип данных у данного поля в датасете и на сервере?
Плохиш (2010-12-10 16:09:00) [5]Ошибка в 17й строке. Надо нанять программиста.
Any (2010-12-10 15:55:00) [6]SQLDataSet1.ParamByName('data').Clear;
Ничего не меняет
Any (2010-12-10 15:52:00) [7]Правда, теперь cообщение: dbExpress driver does not support the TDBXTypes.Variant data type. Vendor error message: .
Плохиш (2010-12-10 15:51:00) [8]
> Any (10.12.10 15:48) [6]
Так что, на счёт [2]?
Any (2010-12-10 15:48:00) [9]SQLDataSet1.ParamByName('data').DataType := ftVariant;
Anatoly Podgoretsky (2010-12-10 15:21:00) [10]> 12 (10.12.2010 14:43:02) [2]
ParamByName типа Variant, так что и NULL очень нормально, а вот какого типа
datatype автор почему то ничего не сказал, а ведь хочет помощи.
Anatoly Podgoretsky (2010-12-10 15:19:00) [11]> Any (10.12.2010 14:01:00) [0]
А какого data type NULL
А параметры у тебя настроены? Какого типа datatype у параметра?
А почему 'data' можно присвоить ''
Ну и еще множество вопросов.
Any (2010-12-10 15:10:00) [12]insert into test(id, data 1,...,data n) values(1, :data 1, ..., :data n)
Вводить Null в запросе я не могу, так как значение параметра data меняется: оно м.б. непустой строкой, тогда вводится строка, или если строка пустая, то должно вводится Null, менять текст запроса в зависимости от того пустая строка или нет тоже не могу, потому что в запросе вообще-то очень много таких параметров. Указываю DataType параметрам в программе, всё также ругается.
12 (2010-12-10 14:43:00) [13]SQLDataSet1.ParamByName('data').Clear;
И. Павел (2010-12-10 14:42:00) [14]insert into test(id, data) values(1, NULL)
А в вашем примере можно попробовать указать явно DataType, а то может быть тип параметра установился не правильный.