AdoQuery->SQL = "INSERT INTO Geo (RegN, ZakazN, Adres, Disk, Kalka, Date_In, Note) VALUES (1528, '3-35684-04', 'ул. Полбина', 1, 3, :p_DateTime, 'поперечник')";
TDateTime pDateTime = TDateTime('22.02.2005');
AdoQuery->Parametrs->ParamByName(p_DateTime)->Value = pDateTime;
AdoQuery->ExecSQL();
Insert через ADO
INSERT INTO Geo (RegN, ZakazN, Adres, Disk, Kalka, Date_In, Note) VALUES (1528, '3-35684-04', 'ул. Полбина', 1, 3, '22.02.2005', 'поперечник')
RegN - числовой (LongInt)
ZakazN - текстовый (255)
Adres - текстовый (255)
Disk - числовой (LongInt)
Kalka - числовой (LongInt)
Date_In - текстовый (255)
Note - текстовый (255)
Если использовать TADOQuery, то при попытке вызвать метод ExecSql возникает ошибка "Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом"
Если использовать TADOCommand, то при попытке вызвать метод Execute возникает ошибка "Ошибка синтаксиса в инструкции INSERT INTO"
В таблице еще есть автокриментное свойство RecIndex, но я его не должен вроде задавать при вставке новой записи...
Самое интересно что с BDE тот же самый запрос работает! Ну ни как не могу понять в чем дело! Народ! Помогите!
Цитата:
Originally posted by Beer
Перевожу свою базу данных с парадокса на аксесс. Соответственно отказываюсь от BDE и "пытаюсь" использовать ADO. Все бы хорошо но TADOQuery и TADOCommand напрочь отказываются вставлять новые записи. Запрос такой:
INSERT INTO Geo (RegN, ZakazN, Adres, Disk, Kalka, Date_In, Note) VALUES (1528, '3-35684-04', 'ул. Полбина', 1, 3, '22.02.2005', 'поперечник')
RegN - числовой (LongInt)
ZakazN - текстовый (255)
Adres - текстовый (255)
Disk - числовой (LongInt)
Kalka - числовой (LongInt)
Date_In - текстовый (255)
Note - текстовый (255)
Если использовать TADOQuery, то при попытке вызвать метод ExecSql возникает ошибка "Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом"
Если использовать TADOCommand, то при попытке вызвать метод Execute возникает ошибка "Ошибка синтаксиса в инструкции INSERT INTO"
В таблице еще есть автокриментное свойство RecIndex, но я его не должен вроде задавать при вставке новой записи...
Самое интересно что с BDE тот же самый запрос работает! Ну ни как не могу понять в чем дело! Народ! Помогите!
Перевожу свою базу данных с парадокса на аксесс. Соответственно отказываюсь от BDE и "пытаюсь" использовать ADO. Все бы хорошо но TADOQuery и TADOCommand напрочь отказываются вставлять новые записи. Запрос такой:
INSERT INTO Geo (RegN, ZakazN, Adres, Disk, Kalka, Date_In, Note) VALUES (1528, '3-35684-04', 'ул. Полбина', 1, 3, '22.02.2005', 'поперечник')
RegN - числовой (LongInt)
ZakazN - текстовый (255)
Adres - текстовый (255)
Disk - числовой (LongInt)
Kalka - числовой (LongInt)
Date_In - текстовый (255)
Note - текстовый (255)
Если использовать TADOQuery, то при попытке вызвать метод ExecSql возникает ошибка "Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом"
Если использовать TADOCommand, то при попытке вызвать метод Execute возникает ошибка "Ошибка синтаксиса в инструкции INSERT INTO"
В таблице еще есть автокриментное свойство RecIndex, но я его не должен вроде задавать при вставке новой записи...
Самое интересно что с BDE тот же самый запрос работает! Ну ни как не могу понять в чем дело! Народ! Помогите!
Перепиши вот так:
Код:
У тебя тип даты не совпадает. Ado не умеет преобразовывать "01.01.2005" в DateTime.
Цитата:
Originally posted by AlexandrVSmirno
Перепиши вот так:
У тебя тип даты не совпадает. Ado не умеет преобразовывать "01.01.2005" в DateTime.
Перепиши вот так:
Код:
AdoQuery->SQL = "INSERT INTO Geo (RegN, ZakazN, Adres, Disk, Kalka, Date_In, Note) VALUES (1528, '3-35684-04', 'ул. Полбина', 1, 3, :p_DateTime, 'поперечник')";
TDateTime pDateTime = TDateTime('22.02.2005');
AdoQuery->Parametrs->ParamByName(p_DateTime)->Value = pDateTime;
AdoQuery->ExecSQL();
TDateTime pDateTime = TDateTime('22.02.2005');
AdoQuery->Parametrs->ParamByName(p_DateTime)->Value = pDateTime;
AdoQuery->ExecSQL();
У тебя тип даты не совпадает. Ado не умеет преобразовывать "01.01.2005" в DateTime.
Таже самая ошибка вылетает. Дело в чем, в самой базе Date_In - имеет текстовый тип! Так что преобразования к дате не нужно (но я все равно попробовал - не работает).
Цитата:
Originally posted by Beer
Таже самая ошибка вылетает. Дело в чем, в самой базе Date_In - имеет текстовый тип! Так что преобразования к дате не нужно (но я все равно попробовал - не работает).
Таже самая ошибка вылетает. Дело в чем, в самой базе Date_In - имеет текстовый тип! Так что преобразования к дате не нужно (но я все равно попробовал - не работает).
1. В Дизайн режиме поробуй Active поставить в true. Получишь более развернутую диагностику того, что ado не понравилось.
2. Посмотри в Parameters. Может у тебя какие параметры определены? Удали их.
3. Свойство Prepared поставь в false.
Цитата:
Originally posted by AlexandrVSmirno
1. В Дизайн режиме поробуй Active поставить в true. Получишь более развернутую диагностику того, что ado не понравилось.
2. Посмотри в Parameters. Может у тебя какие параметры определены? Удали их.
3. Свойство Prepared поставь в false.
1. В Дизайн режиме поробуй Active поставить в true. Получишь более развернутую диагностику того, что ado не понравилось.
2. Посмотри в Parameters. Может у тебя какие параметры определены? Удали их.
3. Свойство Prepared поставь в false.
Да еще. Если используешь параметры в запросе более чем один раз, назови их по разному. И обязательно проставь им типы.