![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]Один возвращает набор данных, а другой нет, наверное так