Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Найти информацию по работе с 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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо