Главная страница
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.03 c
2-1162293414
Alex_C
2006-10-31 14:16
2006.11.19
Какое событие происходит при изменении текста в мемо?


4-1152100832
ILIA82
2006-07-05 16:00
2006.11.19
права доступа в NTFS


2-1162490522
nordic3
2006-11-02 21:02
2006.11.19
Перерисовка Image


6-1151330478
RealGanj
2006-06-26 18:01
2006.11.19
Переача файла по сети


1-1159873426
Icon
2006-10-03 15:03
2006.11.19
Использование иконок различного размера