![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Неверная фильтрация, ADO, доступ к текстовым файлам через Jet [D7]
DmitryNekl © (2005-08-31 12:06:00)Здравствуйте!
Надеюсь на вашу помощь.
Ситуация такая. Есть csv-файл, который грузится в динамически создаваемые ADO-компоненты:
ADOTable1:=TADOTable.Create(Form1);
ADOTable1.Name:='ADOTable1';
ADOTable1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + ExtractFilePath(Application.ExeName) + ';Extended Properties=text;Persist Security Info=False';
ADOTable1.TableName:='base#csv';
DataSource1:=TDataSource.Create(Form1);
DataSource1.Name:='DataSource1';
DataSource1.DataSet:=ADOTable1;
DBGrid1:=TDBGrid.Create(Form1);
DBGrid1.Name:='DBGrid1';
DBGrid1.Parent:=Form1;
DBGrid1.Align:=alClient;
DBGrid1.DataSource:=DataSource1;
ADOTable1.Active:=True;
Кроме того, используется файл schema.ini:
[base.csv]
ColNameHeader=True
Format=Delimited(;)
MaxScanRows=500
CharacterSet=ANSI
Col1="Col1" Char Width 100
Col2="Col2" Char Width 100
Col3="Col3" Char Width 255
Col4="Col4" Char Width 100
Col5="Col5" Float
Col6="Col6" Char Width 100
В csv-файле 5-ая колонка содержит цифры, как целые, так и дробные. Разделитель пробовал менять (точка или запятая), ничего не меняется, в гриде отображается запятая. Проблема: при выполнении фильтрации
ADOTable1.Filter:='Col5=0,5';
ADOTable1.Filtered:=True;
отображаются данные с Col5=5, а не 0,5.
Подскажите, плз, как решить проблему?
Anatoly Podgoretsky (2005-09-01 01:01:00) [1]Фильтры и запросы делаются без учета региональных настроек, используется универсальная нотация, через точку.
Palladin (2005-08-31 20:52:00) [2]А чего забавного? Не задумывался, что в Delphi числа-константы с плавающей точкой записываются именно через точку, а не запятую, вне зависимости от региональных настроек
DmitryNekl (2005-08-31 13:58:00) [3]Дык поле-то не текстовое... не помогает.
Решил! :) Забавно... в условии фильтрации вместо запятой точку прописал. Все заработало :)
Slym (2005-08-31 13:28:00) [4]ADOTable1.Filter:='Col5="0,5"';?