Вниз
Скачать: CL | DM;

Проблема с select из dbf   Найти похожие ветки 

← →
Orc ©   (2005-01-14 09:53) [0]

Возникла такая проблема: устанавливаю коннект и пытаюсь выполнить запрос из БД dBASE (Через ADO)

adoQuery1.ConnectionString:="Provider=MSDASQL.1;Persist Security Info=False;Data Source=Файлы dBASE;Mode=ReadWrite;Initial Catalog=c:\recieve";

adoQuery1.Active := false;
adoQuery1.SQL.Text := "select * from FILENAME";
adoQuery1.Active := true;

Имя файла передаю без расширения. Все пути и сам файл есть. Но ругается на то, что ошибка как раз в параметре from. В чём может быть дело? Заранее благодарен.


← →
Соловьев ©   (2005-01-14 10:38) [1]

FILENAME - может зарезервированое слово? попробуй взять в кавычки и указать расширение:
select * from "filename".dbf


← →
Orc ©   (2005-01-14 10:41) [2]

:) FILENAME - это я просто так написал. Выглядет в оригинале так:

adoQuery2.SQL.Text := "select * from tender20050107";

Т.е. в каталоге c:\recieve валяется файл tender20050107.dbf


← →
Соловьев ©   (2005-01-14 10:51) [3]

попробуй Provider=Microsoft.Jet.OLEDB.4.0


← →
Orc ©   (2005-01-14 11:12) [4]

Изначально у меня работало вот как: запрос, который работает с dbf - Provider=MSDASQL.1, и ещё несколко запросов, которые использовались для работы с базой Access - Provider=Microsoft.Jet.OLEDB.4.0. На машине у заказчика (писалось под XP, у заказчика - 98) не работало. Переставляли там всё - бестолку. Тогда я сменил Provider"a для запросов к Access на MSDASQL.1 - у заказчика заработало всё, кроме запроса к dbf, который итак был с MSDASQL.1 (в этом запросе я ничего не менял). Что это может быть?


← →
Соловьев ©   (2005-01-14 11:37) [5]

Переставляли там всё - бестолку

MDAC? JET?


← →
Orc ©   (2005-01-14 12:06) [6]

и MDAC, и Jet, и SP8 на Jet. И даже BDE зачем-то поставил - не помогает :( Причём у меня всё нормально работает - под XP, 2003, эмуляция 98-95...


← →
sniknik ©   (2005-01-14 12:37) [7]

> adoQuery1.ConnectionString:="Provider=MSDASQL.1;Persist Security Info=False;Data Source=Файлы dBASE;Mode=ReadWrite;Initial Catalog=c:\recieve";
на английской винде этот DSN ODBS будет называться dBASE Files


← →
Orc ©   (2005-01-14 13:26) [8]

Английская винда тут не причём. У меня как раз английская, а вот названия DSN"ов как раз и по-русский (только-что посмотрел и убедился).


← →
sniknik ©   (2005-01-14 13:48) [9]

а какие пути внутри DSN-а? и не могут ли они у тебя отличатся от машины к машине? (кто их создает/использует кроме тебя?)

попробуй подключение строкой а не по DSN
Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DSN=dBASE Files;DBQ=C:\RECIEVE;DefaultDir=C:\RECIEVE;DriverId=533;MaxBufferSize=2048;PageTimeout=5;";Initial Catalog=C:\Recieve

"dBASE Files" естественно надо поменять на реально присутствуюший на конкретной машине.

а еще когда почемуто не работает выдает ошибку, часто там точное указание причины.


← →
sniknik ©   (2005-01-14 14:07) [10]

да еще проверь, замени каталог RECIEVE на другой... у меня на нем почемуто какаято другая ошибка (возможно и связанная), хотя файлы в нем открывает (запросы работают).
ошибка
EOleException : Произошли ошибки во время выполнения многошаговой операции OLE DB. По возможности, проверьте значения всех состояний OLE DB. Работа не выполнена
именно при каталоге RECIEVE подключение через ODBC DSN, происходит на получении инфы о таблицах. (поля/типы/т.д.)



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

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



Память: 0.47 MB
Время: 0.026 c
1-1106812418
bon
2005-01-27 10:53
2005.02.13
компонент Outlook bar для Делфи7


14-1105941232
WondeRu
2005-01-17 08:53
2005.02.13
Почему институт брака себя не изжил???


14-1106387500
DSKalugin
2005-01-22 12:51
2005.02.13
восстановление информации на CD-R?


4-1104071573
mariya_mezenceva
2004-12-26 17:32
2005.02.13
winexec(s,sw_show) - ругается


1-1106756062
Blond
2005-01-26 19:14
2005.02.13
Помощь в delphi7




   Наверх