Главная страница
    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.46 MB
Время: 0.037 c
3-1098063832
sanek
2004-10-18 05:43
2004.11.14
как создать таблицу с полем memo для внесения туда текстовых данн


14-1099059159
Kerk
2004-10-29 18:12
2004.11.14
США могут повторить судьбу СССР


6-1091738810
MeMO
2004-08-06 00:46
2004.11.14
Вопрос по статье "Мониторинг сетей в Delphi"


3-1097576859
Санёк
2004-10-12 14:27
2004.11.14
Сравнение двух записей


1-1099339331
Skiter
2004-11-01 23:02
2004.11.14
Работа с TImages





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский