Форум: "Начинающим";
Текущий архив: 2006.02.26;
Скачать: [xml.tar.bz2];
Вниз
Не понятные ошибки при работе с БД Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.038 c