Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];

Вниз

Найти информацию по работе с 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.034 c
14-1098790139
Григорьев Антон
2004-10-26 15:28
2004.11.14
Ну китайцы дают!


10-1062767704
karan
2003-09-05 17:15
2004.11.14
Общие вопросы по DCOM


3-1097867801
Zif
2004-10-15 23:16
2004.11.14
Как записать путь к файлу в БД, используя OpenDialog?


14-1098947558
peypivo
2004-10-28 11:12
2004.11.14
Кодировки


3-1097958612
saNat
2004-10-17 00:30
2004.11.14
"Архивация" БД Access





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский