Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.14;
Скачать: CL | DM;

Вниз

Найти информацию по работе с Query   Найти похожие ветки 

 
Irene   (2004-10-15 18:51) [0]

Работала с Table, вставляла, удаляла, изменяла записи. Теперь пришло время использовать несколько таблиц и воспользовалась Query, но нигде не могу найти подробной информации, как работать с данными (вставлять, удалять, изменять данные). Подскажите, где можно добыть такую информацию?


 
Ega23 ©   (2004-10-15 18:58) [1]

вставлять, удалять, изменять данные


var
ss:string;
begin
ss:="Insert into Table1 (Col1, Col2, ... ColN) "+
    "values (Val1, Val2, ... ValN)";
QTemp.SQL.Text:=ss;
QTemp.ExecSQL;

end;


 
Irene   (2004-10-15 19:04) [2]

А в каком месте писать этот код? И сработает такое дело, если в Query объединены несколько таблиц и вставляю я это дело через отдельную форму через Editы?


 
Ega23 ©   (2004-10-15 19:13) [3]

Один запрос - на Select, отображаются данные, например в ДБгриде. Другой - на выполнение UPDATE (INSERT, DELETE). Ведь когда у тебя выборка из нескольких таблиц (у меня, например, основная выборка на экране - связка из семи таблиц), TQuery не знает, что именно ты хочешь изменить.


 
Irene   (2004-10-15 19:28) [4]

Хорошо,

"values (Val1, Val2, ... ValN)"

Если я хочу, чтобы информацию БД брала из TEdit, куда я забила всю информацию, я вместе Val1, могу написать типо
"values (Edit1.Text, Edit2.Text....)"
или это неправильно?


 
Ega23 ©   (2004-10-15 19:43) [5]

Значит у 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:48) [6]

Пасибки, я попробую.


 
Deniz ©   (2004-10-16 07:57) [7]

> 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 тоже будет работать, но как-то лучше сразу приводить типы параметров.



Страницы: 1 вся ветка

Текущий архив: 2004.11.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.046 c
14-1098686253
}|{yk
2004-10-25 10:37
2004.11.14
Харьковский Металлист обыграл донецкий Шахтёр 1-0!!!


1-1098619219
ali_t
2004-10-24 16:00
2004.11.14
аналог find in files из delphi


3-1097483098
BanderLog
2004-10-11 12:24
2004.11.14
FB 1.5 Создания БД программно.


14-1098686675
syte_ser78
2004-10-25 10:44
2004.11.14
Как сделать чтобы DmClient 2.1.2 запомнил имя и емейл в форме ?


3-1097829624
Пуртик
2004-10-15 12:40
2004.11.14
Как правильно сгенерить строку SQL?