Query1.SQL.Add

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
roalang
Сообщения: 6
Зарегистрирован: 25 окт 2005, 11:20
Откуда: г. Новокузнецк

Подскажите как мне сделать... у меня есть каталог файлов dbf, я делаю выборку этих файлов и мне надо поместить результат т.е. таблыцы в DBGrid, подскажите как мне сделать запрос
я делаю так
With DataModule2 do
begin
Query1.SQL.Add(select * from + здесь Edit+ расширение);
end;
end;


скажите правильно???
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Тут все зависит от драйвера, а также от того используется ли TDataBase.
Например для нативных драйверов BDE в запросе можно указывать только имя файли или имя с расширением, или вообще полный путь.
Если имя содержит пробелы или вообще какие-то другие символы кроме букв, цифр и еще нескольких символов, то для BDE имя нужно брать в двойные кавычки.
Если путь не указан, то при отсутствии в TQuery ссылки на TDatabase файл отыскивается в текущей папке, если TDatabase используется, то путь указан в его параметрах.

Т.е. должно быть
Query1.SQL.Text:='select * from "' + Edit1.Text + '.DBF"'
или
Query1.SQL.Text:='select * from "' + Edit1.Text + '"'

Причем в Edit1 можно ввести Table1 или C:\Data\Table1, а во втором случае еще и C:\Data\Table1.bdf

Для не DBE-драйверов детали синтаксиса могут поменяться, однако для подавляющего большинства:
текстовые строки заключаются в одинарные кавычки, а имена полей и имена таблиц употребляются либо без кавычек, либо в двойных кавычках.
YurikGL
Сообщения: 142
Зарегистрирован: 16 фев 2005, 21:54
Откуда: Уфа
Контактная информация:

Query1.SQL.Add(select * from + здесь Edit+ расширение);

а если в Query1.SQL. уже что-то было? Его надо бы очистить... или вообще написать Query1.SQL.text:=select * from + здесь Edit+ расширение

ну и как минимум перед этим желательно делать query1.close а после - query1.open
Ответить