Topic: Нужна помощь!!!
Добрый день, Дмитрий.
Подскажите пожалуйста,
как сделать чтобы при сравнении двух таблиц из таблицы temp поле cost2 присвоилось полю cost1 в таблице main.
Спасибо.
My Visual Database → Russian → Нужна помощь!!!
Добрый день, Дмитрий.
Подскажите пожалуйста,
как сделать чтобы при сравнении двух таблиц из таблицы temp поле cost2 присвоилось полю cost1 в таблице main.
Спасибо.
Приветствую,
Например так:
UPDATE main SET cost1=(SELECT temp.cost2 FROM temp WHERE temp.id=1) WHERE main.id=1
только не совсем ясно о каком сравнении таблиц идет речь.
Скрипт сравнения
procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
var
Results: TDataSet;
sNomer1: string;
begin
SQLQuery('SELECT id, nomer1 FROM main', Results);
while not Results.Eof do
begin
sNomer1 := Results.FieldByName('nomer1').AsString;
if SQLExecute('SELECT COUNT(*) FROM temp WHERE nomer2='+sNomer1)<>'0' then
begin
SQLExecute ('UPDATE main SET [text]='+form1.Edit1.sqlValue+' WHERE id='+Results.FieldByName('id').AsString);
Results.Next;
end;
end;
Results.Free;
Form1.TableGrid1.dbUpdate;
end;
lexa_ua
При первом взгляде ошибок не вижу, пожалуйста описывайте подробней, скрипт не работает? либо возникает ошибка?
также можете приложить проект.
Извините, в первом сообщении не прикрепил файл.
Думаю теперь будет понятней.
Это работает отлично.
SQLExecute ('UPDATE main SET [text]='+form1.Edit1.sqlValue+' WHERE id='+Results.FieldByName('id').AsString);
Но мне нужно чтобы изменился еще одна колонка (main.cost1)
И её присвоились значения из (temp.cost2)
SQLExecute ('UPDATE main SET [cost2]='+form1.Edit1.sqlValue+' WHERE id='+Results.FieldByName('id').AsString);
Вместо '+form1.Edit1.sqlValue+' не пойму что нужно написать.
Еще раз спасибо.
попробуйте так
procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
var
Results: TDataSet;
sNomer1: string;
begin
SQLQuery('SELECT id, nomer1 FROM main', Results);
while not Results.Eof do
begin
sNomer1 := Results.FieldByName('nomer1').AsString;
if SQLExecute('SELECT COUNT(*) FROM temp WHERE nomer2='+sNomer1)<>'0' then
begin
SQLExecute ('UPDATE main SET [text]='+form1.Edit1.sqlValue+' WHERE id='+Results.FieldByName('id').AsString);
SQLExecute ('UPDATE main SET [cost1]=(SELECT temp.cost2 FROM temp WHERE nomer2='+sNomer1+') WHERE id='+Results.FieldByName('id').AsString);
end;
Results.Next;
end;
Results.Free;
Form1.TableGrid1.dbUpdate;
end;
Спасибо!!!
My Visual Database → Russian → Нужна помощь!!!
Powered by PunBB, supported by Informer Technologies, Inc.
Theme Hydrogen by Kushi