Цитата:
Сообщение от civicuu
В общем, чтобы не создавать каждый раз новую тему открыл тему про SQL запросы.
1)
При создании БД застрял на автоинкрементах.
таблица: dBase IV, поля: id, name (number и character)
требуется: увеличение значения id при вводе name и отображение внесенной записи.
в приложении организован диалог через Edit ("Введите имя") и Button ("ОК").
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.close;
Query1.SQL.Clear;
Query1.sql.Text:=('ALTER TABLE tbl.dbf MODIFY id not null auto_increment=1');
Query1.ExecSQL;
Query1.SQL.Clear;
Query1.SQL.Text:=('insert into tbl.dbf values(id,"'+edit1.text+'")');
Query1.ExecSQL;
Query1.SQL.Clear;
Query1.SQL.Text:=('select * from tbl.dbf');
Query1.open;
end;
|
в чем тут трабла?
при обработке ссылался на 'modify':
Код:
Error..
Token: Modify
in line 1
в виду сжатых сроков оставил эту затею, но все же хотелось узнать мнение более компетентных людей (так как все равно вернусь к етому "месту", но попозже)

альтернативный выход: при добавлении новой записи требуется указать номер, если номер существует, то "фейл".
Да и еще:
Код:
INSERT INTO table VALUES (col1,col2,...,colN)
возможно ли арифметические операции в св-ве VALUES. например, если col1 типа Numeric(Integer), что-то вроде этого ...VALUES (
col1=col1+1,col2,...,colN). Если да, то как правильно это оформить?
в моем примере не получается:
Код:
INSERT INTO MyTable Values (id=id+1,name)
//пробовал заключать в " " или "' '" или ' ', не выходит
//через параметр также не получается, ругается на "+", хотя с умножением "*" все ОК
//автоинкремент единственный выход?