Советы по Delphi. Версия 1.4.3 от 1.1.2001
Шрифт:
Как добиться верной работы фильтра на запросах и на неиндексированных таблицах?
Nomadic отвечает:
(Т.е. при работе программы наблюдалась следующая картина: в результате очередной фильтрации оставалось видно 4 записи из восьми. Добавляем букву к фильтру, остается, допустим, две. Убираем букву, которую только что добавили, в гриде все равно видно только две записи)
Эта проблема была в Delphi 3.0 только на TQuery, а в Delphi 3.01 появилась и в TTable.
Лечится так (простой пример):
Как
Nomadic отвечает:
sqlstate='99999' не подходит, так как хочется на клиенте видеть код исключения.
Используй RAISERROR с кодом >20000. Если еще при этом научишься без потерь передавать на Delphi-клиента русские ругательства, то скажи мне как ты этого добился :).
Когда я применяю ApplyUpdates на ClientDataSet, на серверной стороне не срабатывает событие OnNewRecord для оригинального набора данных. Как это исправить?
Nomadic отвечает:
Никак. Эти обновления идут прямо через BDE, а не через компонент набора данных.
В Delphi 4.0 (C++Builder 4.0) ситуация радикально изменилась.
Во-первых, обычному провайдеру данных (TProvider) можно указать, каким образом обновлять данные.
Во-вторых, новый тип провайдера (TDataSetProvider) работает
То есть – все события при данных условиях на сервере будут отрабатываться обычным образом.
Если же Вы пользуетесь более старой версией Delphi, то, как обычно, можно посоветовать использование хранимых процедур, в данном контексте это будут методы сервера приложений. К сожалению, совет неприемлем для транспорта Sockets.
SQL
Функции дат в SQL
Тема: Функции дат в SQL
Кто-нибудь знает как «вытащить» месяц или год из datetime-поля с помощью SQL? Я знаю, что QBE этого не может. SQL в состоянии это сделать?
Как насчет функции EXTRACT?
Steve Koterski
Зарезервированные слова Local SQL
Ниже приведен список в алфавитном порядке слов, зарезервированных Local SQL в Borland Database Engine. Имейте в виду, что данный совет публикуется «как есть».