![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Найти информацию по работе с Query
Irene © (2004-10-15 18:51:00)Работала с Table, вставляла, удаляла, изменяла записи. Теперь пришло время использовать несколько таблиц и воспользовалась Query, но нигде не могу найти подробной информации, как работать с данными (вставлять, удалять, изменять данные). Подскажите, где можно добыть такую информацию?
Deniz (2004-10-16 07:57:00) [1]> Ega23 © (15.10.04 19:43) [5]
> Теперь делаем так:
> Query1.ParamByName('Val1').Value (здесь могу ошибаться,
> с параметрами не работал :о) ) :=Edit1.Text;
> Query1.ParamByName('Val2').Value:=Edit2.Text;
Лучше так:
try
i:=StrToInt(Edit2.Text);
Query1.ParamByName('Val1').AsInteger:=i;
except
Query1.ParamByName('Val3').Clear; // для записи null
end;
Query1.ParamByName('Val2').AsString:=Edit2.Text;
C Value тоже будет работать, но как-то лучше сразу приводить типы параметров.
Irene (2004-10-15 19:48:00) [2]Пасибки, я попробую.
Ega23 (2004-10-15 19:43:00) [3]Значит у TQuery есть свойство Params.
В текст можно заложить следующее:
Query1.SQL.Text:='Insert into Table1 (Col1, Col2, ... ColN) '+
'values (:Val1, :Val2, ... :ValN)';
Теперь делаем так:
Query1.ParamByName('Val1').Value (здесь могу ошибаться, с параметрами не работал :о) ) :=Edit1.Text;
Query1.ParamByName('Val2').Value:=Edit2.Text;
и т.д.
Можно по другому:
ss:='Insert into Table1 (Col1, Col2, ... ColN) '+
'values (' + Edit1.Text+', '+Edit2.Text+', '... '+EditN.Text+')';
Только тогда аккуратнее с кавычками, если у тебя текстовые поля.
Irene (2004-10-15 19:28:00) [4]Хорошо,
'values (Val1, Val2, ... ValN)'
Если я хочу, чтобы информацию БД брала из TEdit, куда я забила всю информацию, я вместе Val1, могу написать типо
'values (Edit1.Text, Edit2.Text....)'
или это неправильно?
Ega23 (2004-10-15 19:13:00) [5]Один запрос - на Select, отображаются данные, например в ДБгриде. Другой - на выполнение UPDATE (INSERT, DELETE). Ведь когда у тебя выборка из нескольких таблиц (у меня, например, основная выборка на экране - связка из семи таблиц), TQuery не знает, что именно ты хочешь изменить.
Irene (2004-10-15 19:04:00) [6]А в каком месте писать этот код? И сработает такое дело, если в Query объединены несколько таблиц и вставляю я это дело через отдельную форму через Editы?
Ega23 (2004-10-15 18:58:00) [7]вставлять, удалять, изменять данные
var
ss:string;
begin
ss:='Insert into Table1 (Col1, Col2, ... ColN) '+
'values (Val1, Val2, ... ValN)';
QTemp.SQL.Text:=ss;
QTemp.ExecSQL;
end;