Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.024 c
3-1135844495
Paha
2005-12-29 11:21
2006.02.26
Связка нескольких баз Oracle.


5-1125637913
DimaBr
2005-09-02 09:11
2006.02.26
Слетает события компонента


2-1139476432
Id
2006-02-09 12:13
2006.02.26
Переход курсора после Tab


2-1139642458
RpO
2006-02-11 10:20
2006.02.26
Подскажите plz как мне считать из одного файла два столбца и кажд


4-1134058839
Volf_555
2005-12-08 19:20
2006.02.26
Как изменить системное время с помощью Delphi?




   Наверх