Запрос вполне годится, только можно сделать еще проще.
1. С всегда ложным условием:
Код:
select * from Table where 1=0
2. Если поддерживается limit:
Код:
select * from Table limit 0
Вариант для MS SQL Server:
Код:
select Top 0 * from Table
Собственно, примерно так и пришлось один раз сделать, что бы не качать данные на клиента. Нужен был нормальный доступ к TBlobField только для закачки данных.
С другой стороны, а что тебе мешает сделать нормально:
1. Добавляем TUpdateSQL (или как он там называется) и прописываем в нем запросы на Insert, Update, Delete.
2. Стартуем транзакцию.
3. Открываем TQuery в нормальном режиме и работаем с ним.
4. Закрываем транзакию (COMMIT для сохранения, ROLLBACK для отмены изменений).