Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.03.06;
Скачать: CL | DM;

Вниз

Ошибка при выполнении запроса   Найти похожие ветки 

 
Any   (2010-12-10 14:01) [0]

Здравствуйте!

Есть БД 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 или пустую строку?


 
И. Павел ©   (2010-12-10 14:42) [1]

insert into test(id, data) values(1, NULL)

А в вашем примере можно попробовать указать явно DataType, а то может быть тип параметра установился не правильный.


 
12 ©   (2010-12-10 14:43) [2]

SQLDataSet1.ParamByName("data").Clear;


 
Any   (2010-12-10 15:10) [3]

insert into test(id, data 1,...,data n) values(1, :data 1, ..., :data n)

Вводить Null в запросе я не могу, так как значение параметра data меняется: оно м.б. непустой строкой, тогда вводится строка, или если строка пустая, то должно вводится Null, менять текст запроса в зависимости от того пустая строка или нет тоже не могу, потому что в запросе вообще-то очень много таких параметров. Указываю DataType параметрам в программе, всё также ругается.


 
Anatoly Podgoretsky ©   (2010-12-10 15:19) [4]

> Any  (10.12.2010 14:01:00)  [0]

А какого data type NULL
А параметры у тебя настроены? Какого типа datatype у параметра?
А почему "data" можно присвоить ""

Ну и еще множество вопросов.


 
Anatoly Podgoretsky ©   (2010-12-10 15:21) [5]

> 12  (10.12.2010 14:43:02)  [2]

ParamByName типа Variant, так что и NULL очень нормально, а вот какого типа
datatype автор почему то ничего не сказал, а ведь хочет помощи.


 
Any   (2010-12-10 15:48) [6]

SQLDataSet1.ParamByName("data").DataType := ftVariant;


 
Плохиш ©   (2010-12-10 15:51) [7]


> Any   (10.12.10 15:48) [6]

Так что, на счёт [2]?


 
Any   (2010-12-10 15:52) [8]

Правда, теперь cообщение: dbExpress driver does not support the TDBXTypes.Variant data type. Vendor error message: .


 
Any   (2010-12-10 15:55) [9]

SQLDataSet1.ParamByName("data").Clear;
Ничего не меняет


 
Плохиш ©   (2010-12-10 16:09) [10]

Ошибка в 17й строке. Надо нанять программиста.


 
Anatoly Podgoretsky ©   (2010-12-10 16:27) [11]


> Выдается сообщение: 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) [12]

Теперь другой вопрос, а какой тип данных у данного поля в датасете и на сервере?


 
Anatoly Podgoretsky ©   (2010-12-10 16:28) [13]

> Плохиш  (10.12.2010 16:09:10)  [10]

А вот это бы не помешало.


 
Any   (2010-12-11 21:25) [14]

Всем большое спасибо за советы!
Оказалось я просто забыла про один из параметров, не присвоив ему значение (уж слишком их много). Всё работает.



Страницы: 1 вся ветка

Текущий архив: 2011.03.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.01 c
15-1290673595
pavel_guzhanov
2010-11-25 11:26
2011.03.06
Можно ли заставить FastReport использовать функции из dll?


15-1290590811
Alx2
2010-11-24 12:26
2011.03.06
Мощность ракеты


2-1292336344
vitge
2010-12-14 17:19
2011.03.06
Закрытие формы из другой формы


2-1292508375
Scott Storch
2010-12-16 17:06
2011.03.06
очистить xml-файл


2-1291978918
Any
2010-12-10 14:01
2011.03.06
Ошибка при выполнении запроса