Форум: "Базы";
Текущий архив: 2005.02.13;
Скачать: [xml.tar.bz2];
ВнизПроблема с 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 вся ветка
Форум: "Базы";
Текущий архив: 2005.02.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.041 c