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

Вниз

Как в SQL INSERT INTO указать правильное значение для счетчика?   Найти похожие ветки 

 
DVM ©   (2006-11-02 12:13) [0]

Есть таблица MS Access в которой есть поле ID типа счетчик.
Добавляю записи c пом TADOQuery:

ADOQuery.SQL.Add("INSERT INTO EventLog");
ADOQuerySQL.Add("VALUES (100, 1, 1, 1, 0)");

В данном запросе все работает, первое значение 100 это и есть ID.

Но как мне построить запрос, чтобы счетчик автоматически приращался и был уникальным?


 
Stanislav ©   (2006-11-02 12:14) [1]

а ты перечисли все поля кроме счетчика


 
Stanislav ©   (2006-11-02 12:15) [2]

А pole1 это счетчик.
ADOQuery.SQL.Add("INSERT INTO EventLog (Pole2,pole3,pole4,pole5,pole6)");
ADOQuerySQL.Add("VALUES (100, 1, 1, 1, 0)");


 
DVM ©   (2006-11-02 12:16) [3]


> Stanislav ©   (02.11.06 12:14) [1]

Тогда пишет "Не совпадает число значений ..."


 
ЮЮ ©   (2006-11-02 12:17) [4]

INSERT INTO EventLog(<Второе поле>,<3 поле>, <4 поле>, <5 поле
 VALUES (1, 1, 1, 0)


 
DVM ©   (2006-11-02 12:21) [5]

Написал:


> ADOQuery.SQL.Add("INSERT INTO EventLog (EventType,ZoneID,
> SensorID,DateTime)");
> ADOQuery.SQL.Add("VALUES (1, 1, 1, 0)");


Пишет ошибка в синтаксисе INSERT INTO


 
ЮЮ ©   (2006-11-02 12:28) [6]

DateTime разве не зарезервированное слово?
Да и значение како-то некузявое для лога


 
DVM ©   (2006-11-02 12:30) [7]


> DateTime разве не зарезервированное слово?

Да вроде нет. Все остальное же с ним работает и выборка и т.д.

> Да и значение како-то некузявое для лога

Я для простоты написал 0. Оно работает в первом моем посте. Дело вряд ли в этом.


 
Desdechado ©   (2006-11-02 12:31) [8]

Сколько раз писать: не делайте Add, делайте SQL.Text :=
Это в некоторых версиях позволяет избежать глюков Дельфи, да и во всех позволяет не забывать о Clear.


 
DVM ©   (2006-11-02 12:35) [9]


> Desdechado ©   (02.11.06 12:31) [8]

Исправил:

ADOQuery.SQL.Text := "INSERT INTO EventLog (EventType, ZoneID, SensorID, DateTime) VALUES (1, 1, 1, 0)";

Все равно "ошибка в синтаксисе INSERT INTO"

Что за ерунда, никак не пойму.

EventType, ZoneID, SensorID - целые числа, DateTime - дата/время.

Первое поле ID - счетчик.


 
ЮЮ ©   (2006-11-02 12:38) [10]

В самом Access тоже ругается. Причем на DateTime, возьми его в скобки:

INSERT INTO EventLog ( EventType, ZoneID, SensorID, [DateTime] )
VALUES (1, 1, 1, 0);


 
sniknik ©   (2006-11-02 12:41) [11]

> Сколько раз писать: не делайте Add, делайте SQL.Text :=
сколько раз писать не используйте Query в ADO, используйте Command/Dataset
это во всех случаях логичнее для ADO чем притянутые за уши конструкции из BDE.

> Да вроде нет. Все остальное же с ним работает и выборка и т.д.
да точно да. ну работает, ну есть в движке "оптимизатор" подставляет/конвертирует нужное там где может/однозначно... ну и что? почитай справку, раздел зарезервированные слова.


 
DVM ©   (2006-11-02 12:43) [12]


> ЮЮ ©   (02.11.06 12:38) [10]

Спасибо, помогло.


 
DVM ©   (2006-11-02 12:45) [13]


> sniknik ©   (02.11.06 12:41) [11]


>  используйте Command

Имеется ввиду TADOCommand?


 
sniknik ©   (2006-11-02 12:57) [14]

да. если бы ты его использовал то изначально был бы лишен возможности сделать ADOCommand.SQL.Add, что иногда приводит(вернее приводило) к глюкам дельфи ([8]), а сделал бы правильно, по той логике которую в ADO закладывали его разработчики... и т.д.


 
Stanislav ©   (2006-11-02 12:58) [15]

DVM ©   (02.11.06 12:45) [13]
да.


 
DVM ©   (2006-11-02 12:58) [16]


> sniknik ©   (02.11.06 12:57) [14]

Спасибо за совет, буду знать.



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

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

Наверх




Память: 0.5 MB
Время: 0.041 c
1-1160224589
Sanya_BBB
2006-10-07 16:36
2006.11.19
Как узнать имя файла через компонент OpenDialog?


3-1158307102
Guest001
2006-09-15 11:58
2006.11.19
Exception в Firebird не ловится в Delphi - почему?


15-1162202770
SerJaNT
2006-10-30 13:06
2006.11.19
Отказано в доступе


2-1162448206
alucard
2006-11-02 09:16
2006.11.19
Подскажите как ловить нажатие клавиш в Windows?


15-1162209646
Chort
2006-10-30 15:00
2006.11.19
Microsoft Plus! Digital Media Edition 2006