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

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

Ошибка при выполнении запроса


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, а то может быть тип параметра установился не правильный.


Наверх

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