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

Вниз

Не понятные ошибки при работе с БД   Найти похожие ветки 

 
JEK2   (2006-02-08 21:32) [0]

Объясните что не правильно делаю
в Table1 прально указана DatabaseName, TableName, TableType, база с таблицей есть, алиас прописан.
У DataSource1 DataSet выставлено в Table1
DBGrid отображает таблицу нормально
У Query1  DataSource стоит - DataSource1, DataSet как Table1


procedure TForm1.Button1Click(Sender: TObject);
begin
 Query1.Close;
 Query1.SQL.Clear;
 Query1.SQL.Add("SELECT * FROM B_ALL.DB");
 Query1.SQL.Add("WHERE GOR = "+Edit1.Text);
 Query1.Open;
end;

при запросе вылетает ошибка, в чем дело?
Project Project.exe raized excetion class EDBEngineError with message "Invalid field name TEST".
слово TEST ввожу в Edit1.text
кодировка таблицы OEM_CHARSET, у Edit1.text OEMConvert=TRUE


 
Virgo_Style ©   (2006-02-08 21:53) [1]

У тебя нет поля Test в таблице.
А строковые константы - они в кавычках должны быть.


 
JEK2   (2006-02-08 22:06) [2]

>Virgo_Style ©   (08.02.06 21:53) [1]
>У тебя нет поля Test в таблице.
Это и ежу понятно :)

Я ищу в поле GOR как видно из запроса
Query1.SQL.Add("WHERE GOR = "+Edit1.Text);

Вобщем вся проблема похоже в том, что B_ALL.DB я создал с помошью Datapump из B_ALL.DBF
B_ALL.DBF имеет старую DOS кодировку OEM ,вобщем как то надо при запросе к таблице данные из Edit1.Text тоже как то преобразовать в OEM_CHARSET, иначе удачи не видать :) только вот вопрос как


 
Desdechado ©   (2006-02-08 22:09) [3]

Query1.SQL.Add("WHERE GOR = :P1");
Query1.Params[0].AsString:=Edit1.Text;


 
JEK2   (2006-02-08 22:14) [4]

>Desdechado
переведите если не затруднит строку "WHERE GOR = :P1"
:P1 что это означает?


 
JEK2   (2006-02-08 22:25) [5]

По большому счету всего лишь надо данные из Edit1.text преобразовать в кодировку OEM_CHARSET перед передачей Query1
Query1.SQL.Add("WHERE GOR = ""+Edit1.Text+""");
Помогите а, запарился однако :(


 
Плохиш ©   (2006-02-08 22:38) [6]


> JEK2   (08.02.06 22:14) [4]
> >Desdechado
> переведите если не затруднит строку "WHERE GOR = :P1"
> :P1 что это означает?

А строка Query1.Params[0].AsString:=Edit1.Text; значится вопросов не вызывает?

> Query1.SQL.Add("WHERE GOR = ""+Edit1.Text+""");

Query1.SQL.Add("WHERE GOR=" + QuotedStr(Edit1.Text));


 
JEK2   (2006-02-08 22:57) [7]

>Плохиш
А строка Query1.Params[0].AsString:=Edit1.Text; значится вопросов не вызывает?

Вызывала, разобрался с параметрами, только и такой запрос
Query1.SQL.Add("WHERE GOR = ""+Edit1.Text+""");
и такой
Query1.SQL.Add("WHERE GOR=" + QuotedStr(Edit1.Text));
практически одно и тоже, но дело не в этом, а в!!!

Как Edit1.Text преобразовать в кодировку OEM_CHARSET перед передачей Query1, ну не получается у меня никак :(((


 
Плохиш ©   (2006-02-08 23:26) [8]

Кодировку базы данных обычно указывают в драйверах, используемых для подключения, которые судя по вопросу являются военной тайной.


 
JEK2   (2006-02-09 20:54) [9]

>Плохиш ©   (08.02.06 23:26) [8]
>Кодировку базы данных обычно указывают в драйверах, используемых для >подключения, которые судя по вопросу являются военной тайной.

Я как будто вопрос задал понятнее некуда :)
Как данные из Edit1.Text преобразовать в кодировку OEM_CHARSET перед передачей Query1!!!
У Edit1.text OEMConvert=TRUE -не помогает :(
Разве из вопроса не понятно что кодировка базы именно такая?
B_ALL.DBF имеет старую DOS кодировку OEM, чтоб данные в гриде смотреть не абракадаброй, вынужден использовать тоже OEM_CHARSET



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

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

Наверх




Память: 0.49 MB
Время: 0.03 c
2-1138118946
Алексей Петухов
2006-01-24 19:09
2006.02.26
Снова OLE


1-1137080441
sally
2006-01-12 18:40
2006.02.26
Многопоточность в DLL, отрисовка в приложении


2-1139327879
dabreezy
2006-02-07 18:57
2006.02.26
Вопрос по потокам.


15-1139144464
Дмитрий_177
2006-02-05 16:01
2006.02.26
Ресурсы в exe


2-1139422708
serko
2006-02-08 21:18
2006.02.26
Socket