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

Вниз

Как читать DBF файлы через ADO?   Найти похожие ветки 

 
SergSuper   (2003-05-26 10:41) [0]

Я делаю Build ConnectionString, выбираю OLEDB для ODBC. Дальше надо выбрать data source name. И вот тут мне приходится выпирать "Файлы dBase". Что не есть хорошо - где-то это может называться "dBase files".
Научите, как это надо делать грамотно, чтоб независимо от настроек открывался DBF файл


 
sniknik ©   (2003-05-26 10:55) [1]

грамотно выбирать OLE DB Jet.4.0.

для ODBC пиши вместо DSN имя драйвера, оно не меняется получится чтото вроде
Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DRIVER={Microsoft dBase Driver (*.dbf)};DBQ=D:\;DefaultDir=D:\;DriverId=533;FIL=dBase 5.0;MaxBufferSize=2048;PageTimeout=5;"


 
SergSuper   (2003-05-26 11:14) [2]

не, чё-то не получается
делаю так:
Qdbf.ConnectionString :=
"Provider=MSDASQL.1;Persist Security Info=False;"
+ "Extended Properties="DRIVER={Microsoft dBase Driver (*.dbf)};"
+"DriverId=533;FIL=dBase 5.0;MaxBufferSize=2048;"
+"DBQ="+ dir+"; DefaultDir="+dir;

Qdbf.SQL.Clear;
Qdbf.SQL.Add("select * from ");
Qdbf.SQL.Add(name);

try
Qdbf.Open;

dir - директорий файла dbf
name - его имя

Появляется ошибка Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another


 
sniknik ©   (2003-05-26 11:40) [3]

сделай так как получается с DSN (так понимаю с ним у тебя получалось)
а после замени
DSN=dBASE Files
на
DRIVER={Microsoft dBase Driver (*.dbf)}
и потом не игногируй дополнительные параметры, в первом случае он их из алиаса получает а во втором может по умолчанию поставить совсем не то что тебе нужно.

+ Qdbf.SQL.Add("select * from "+name); выглядит "естественнее" чем у тебя. не кажется?

ну и на последок а где собственно ошибка возникает на подключении или на запросе? (чтобы понять нужно использовать TADOConnection а уже кверю, а лутше ADODataSet, вязать уже к нему, а не все "в одном флаконе")


 
SergSuper   (2003-05-26 12:01) [4]

была такая строка
Provider=MSDASQL.1;Persist Security Info=false;Data Source=Файлы dBASE;Initial Catalog=D:\DSOURCE\GA\dbf
и всё хорошо работало

сделал TADOConnection, теперь ошибка возникает когда приставиваю TADOConnection.ConnectionString

квери или ADODataSet - по-моему тут не принципиально, у меня это делается в одном месте, просто некий импорт из файла

насчет естественности:
Qdbf.SQL.Add("select * from "+name); - я сначала так и написал, но потом подумал что name - это типа параметр и подставление надо выделить отдельно.


 
sniknik ©   (2003-05-26 12:31) [5]

>была такая строка
>Provider=MSDASQL.1;Persist Security Info=false;Data Source=Файлы dBASE;Initial Catalog=D:\DSOURCE\GA\dbf
>и всё хорошо работало

не выбирай (когда "Я делаю Build ConnectionString") использовать sourse name выбери use connection string и в этой получившейся строке замени DSN


 
SergSuper   (2003-05-26 12:57) [6]

yes, победа!
большое русское мерси!

проблемы были из-за того что я не закрывал строку для Extended Properties двойной кавычкой



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

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

Наверх




Память: 0.48 MB
Время: 0.01 c
14-50465
Дмитрий К.К.
2003-05-30 06:18
2003.06.16
Именинники 30 мая


14-50501
Soft
2003-05-29 19:15
2003.06.16
Плохой программы не существует, бывают плохие пользователи:)


3-50242
undom
2003-05-26 17:56
2003.06.16
Проблемы с DBRadioGroup


1-50352
Voyager
2003-06-02 20:57
2003.06.16
Помогит пожалуйста сделать блокератор экрана для игрового клуба!


3-50244
udf
2003-05-26 17:06
2003.06.16
при попытке обращения к функции ошибка...