Форум: "Начинающим";
Текущий архив: 2011.03.06;
Скачать: [xml.tar.bz2];
ВнизОшибка при выполнении запроса Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.003 c