Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.01.23;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.007 c
1-72811
senya
2004-01-12 18:58
2004.01.23
Масштаб для TImage


3-72692
СержК
2003-12-27 09:12
2004.01.23
Перехожу на MSSQL


14-72909
Ирайзор
2004-01-02 15:55
2004.01.23
Про Бойцовский клуб...


1-72776
alexnmsk
2004-01-12 16:07
2004.01.23
Динамические массивы


4-72987
Amirka
2003-11-19 08:29
2004.01.23
Как убрать атрибут readonly у папки и всех файлоы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский