Главная страница
    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.351 c
3-1097758099
star
2004-10-14 16:48
2004.11.14
сортировка


14-1098544150
Кириешки
2004-10-23 19:09
2004.11.14
Очередное надувательство???


1-1099415733
Vasya.ru
2004-11-02 20:15
2004.11.14
получить и сложить часы, минуты, секунды, милисекунды


3-1097930940
TSL
2004-10-16 16:49
2004.11.14
Проблема с полем Image в mssql2000


3-1097649138
first_may
2004-10-13 10:32
2004.11.14
Yaffil...





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