Главная страница
    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.042 c
9-1090416014
Landgraph
2004-07-21 17:20
2004.11.14
Уменьшение длины...


14-1098383173
SviL
2004-10-21 22:26
2004.11.14
Хочу найти компоненты


8-1091640838
miek
2004-08-04 21:33
2004.11.14
GLScene: вопросы


6-1094221548
Wahnsinng
2004-09-03 18:25
2004.11.14
создание сайта


3-1097758302
Andrey_
2004-10-14 16:51
2004.11.14
Помещение картинки (bmp) в БД





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