![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не понятные ошибки при работе с БД [D7]
JEK2 © (2006-02-08 21:32:00)Объясните что не правильно делаю
в 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
JEK2 (2006-02-09 20:54:00) [1]>Плохиш © (08.02.06 23:26) [8]
>Кодировку базы данных обычно указывают в драйверах, используемых для >подключения, которые судя по вопросу являются военной тайной.
Я как будто вопрос задал понятнее некуда :)
Как данные из Edit1.Text преобразовать в кодировку OEM_CHARSET перед передачей Query1!!!
У Edit1.text OEMConvert=TRUE -не помогает :(
Разве из вопроса не понятно что кодировка базы именно такая?
B_ALL.DBF имеет старую DOS кодировку OEM, чтоб данные в гриде смотреть не абракадаброй, вынужден использовать тоже OEM_CHARSET
Плохиш (2006-02-08 23:26:00) [2]Кодировку базы данных обычно указывают в драйверах, используемых для подключения, которые судя по вопросу являются военной тайной.
JEK2 (2006-02-08 22:57:00) [3]>Плохиш
А строка 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 22:38:00) [4]
> 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:25:00) [5]По большому счету всего лишь надо данные из Edit1.text преобразовать в кодировку OEM_CHARSET перед передачей Query1
Query1.SQL.Add('WHERE GOR = "'+Edit1.Text+'"');
Помогите а, запарился однако :(
JEK2 (2006-02-08 22:14:00) [6]>Desdechado
переведите если не затруднит строку 'WHERE GOR = :P1'
:P1 что это означает?
Desdechado (2006-02-08 22:09:00) [7]
Query1.SQL.Add('WHERE GOR = :P1');
Query1.Params[0].AsString:=Edit1.Text;
JEK2 (2006-02-08 22:06:00) [8]>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, иначе удачи не видать :) только вот вопрос как
Virgo_Style (2006-02-08 21:53:00) [9]У тебя нет поля Test в таблице.
А строковые константы - они в кавычках должны быть.