Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

sql [D5]


NIKI ©   (2002-08-16 15:59:00) 

Объясните мне, пожалуйста.
В чём разница (при использовании SQL)
в методах open и execsql?


3JIA9I CyKA   (2002-08-19 12:17:00) [1]

try
Form.Query.Open;
except
on EDataBaseError do
begin// ??????????????????
end;// ??????????????????
end;


Александр Спелицин   (2002-08-19 10:00:00) [2]

2 elv:
В Вашем варианте запрос может быть выполнен дважды.
1-й раз при Query.Open, а если он не вернет данных, то и при
on EDataBaseError do
Form.Query.ExecSQL;

Правильный вариант (конечно для BDE):

try
Form.Query.Open;
except
on EDataBaseError do
begin
end;
end;


elv   (2002-08-17 13:45:00) [3]

А если не знаешь что произойдет, open или exec попробуй использовать нечто вроде этого (пример кажется из Шумакова/Фараонова)

try
Form.Query.Open;
except
on EDataBaseError do
begin
Form.Query.ExecSQL;
end;
end;


VAleksey   (2002-08-17 11:20:00) [4]

На самом деле и та и другая команда выполняют запрос SQL. Просто при команде Open TQuery ожидает получение курсора.


NIKI   (2002-08-16 16:04:00) [5]

Спасибо.


Leran2002   (2002-08-16 16:03:00) [6]

open - возвращает набор данных (SELECT)
execsql - не возвращает ничего (UPDATE,DELETE,INSERT)


Mike Kouzmine   (2002-08-16 16:02:00) [7]

Один возвращает набор данных, а другой нет, наверное так


Наверх

Титульная страница Поиск, карта сайта Написать письмо