Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.23;
Скачать: CL | DM;

Вниз

BDE+ODBC+MySQL - ошибка при выполнении запроса   Найти похожие ветки 

 
Skif   (2003-12-25 19:02) [0]

Имеется проект, подключены следующие елементы TDataSource, TDataBase, TQuery. В Database параметр AliasName:=myodbc3-test тобишь от ODBC драйвер мускула. Конект к базе идет на ура. Тут проблем нет, но вот при выполнении запроса - облом...:



procedure TForm1.Button1Click(Sender: TObject);
begin

Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add("SELECT sum(size) from squid_log_1;");

try {перехватчик ошибок}
Query1.Open; {Выполняем запрос и открываем набор данных}
except {секция обработки ошибок}
On e : EDatabaseError do {e - новый дескриптор ошибки}
messageDlg(e.message,mtError,[mbOK],0); {показываем свойство message объекта e}
end; {окончание обработки ошибки}

end;



после выполнения, точнее в процессе Query1.Open вываливается с ошибкой:

Project Project1.exe reiced exception class EDBEngineError with message Invalid use of keyword. Token size)


Подскажите, где я неправ.
Спасибо.


 
Skif   (2003-12-25 20:31) [1]

Немного разобрался. заменил size на другой столбец ( ident) и все заработало. Неполностью правда. Вопрос, не ужели size зарезервирован BDE-шкой?(под MyDac такого нету, но он к сожалению триальный :(((, а потому использовать не могу.)
В общем изменил код до такого вида


Database1.Connected:=true;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add("SELECT ident from squid_log_1;");
Query1.Open;


Но теперь выдает другую ошибку:

Project Project1.exe reiced exception class EDBEngineError with message: "Table does not exist.Directory or file does not exist:
File: d:\prog_bde\squid_log_1.DB
File: d:\prog_bde\squid_log_1.DBF
File: d:\prog_bde\squid_log_1.txt
File: d:\prog_bde\squid_log_1". Process stoped. Use Step or Run to continue.



Почему он ищет таблицу не на сервере, как прописано в ODBC, и в параметрах DataBase1.Params (указан IP-адресс сервера HOST NAME 192.168.10.244)?


 
Skif   (2003-12-25 21:22) [2]

Все, самостоятельно разобрался, спасибо. Кому интересно, вот решение:

procedure TForm1.Button1Click(Sender: TObject);
var
t,user:string;
begin
t:="size";
user:=#39"skif"#39;

Database1.Connected:=true;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add("SELECT sum("+ t +") from squid_log_1 where ident="+ user);
ShowMessage("ident");
Query1.Open; {Выполняем запрос и открываем набор данных}

showmessage(Query1.Fields[0].AsString);
Database1.Connected:=false;

end;



 
Skif   (2003-12-25 21:25) [3]

Ах, да, в Query1.DatabaseName - squid - имя моей базы прописаной в настройках драйвера mysql в ODBC.



Страницы: 1 вся ветка

Текущий архив: 2004.01.23;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
1-72796
Dust
2004-01-13 07:31
2004.01.23
Edit1.text


3-72637
smu
2003-12-26 15:07
2004.01.23
TDbf Где находится указатель записи после Dbf.delete?


6-72864
Novenkij
2003-11-20 21:29
2004.01.23
Пересылка файлов


3-72638
Vick
2003-12-26 11:45
2004.01.23
Аггрегатные функции для строковых величин


1-72803
download
2004-01-12 22:06
2004.01.23
Удаление отрицательных элементов из массива