Показать сообщение отдельно
  #1  
Старый 10.05.2010, 21:41
lohmatiy lohmatiy вне форума
Прохожий
 
Регистрация: 24.02.2010
Сообщения: 15
Репутация: 10
По умолчанию Сохранение значения поля автоинкремента

Здравствуйте.
Есть 2 таблицы - в первую мы записываем результаты запроса, и первый столбец column тут primary, увеличивается автоматически. Во второй таблице поле column является значением другого столбца, т.е. если в первой таблице значения полей
1 100 100
2 200 200
и первsй столбец column увеличивается сам, то во второй таблице будет так
300 300 1
400 400 2
и т.д.
Сам я как сделал - выполняю запрос, записываю значения в первую таблицу
Код:
with ADOQuery do
SQL.Clear();
SQL.Text:='INSERT INTO table1 ([col1],[col2],) VALUES (:Param1,:Param2)';
Parameters.ParamByName('Param1').Value:= 100;
Parameters.ParamByName('Param2').Value:=200;
ExecSQL();

затем сразу же произвожу по ним поиск по искомому столбцу,
а уж затем записываю это значение во вторую таблицу

Код:
SQL.Clear();
SQL.Text:='SELECT [ID] FROM table1 WHERE [col1]=:Param1,Col2]=:Param2,';
Parameters.ParamByName('Param1').Value:=100;
Parameters.ParamByName('Param2').Value:=200;
ExecSQL();
Open;
tmp:=Fields[0].asInteger;
SQL.Clear();
SQL.Text:='INSERT INTO table2 ([ID]) VALUES (:Param1)';
Parameters.ParamByName('Param1').Value:=tmp;

Есть какое-либо более изящное решение?)
Ответить с цитированием