Форум: "Базы";
Текущий архив: 2003.04.24;
Скачать: [xml.tar.bz2];
ВнизЕсть ли альтернативные способы сброса таблицы MSSQL в Paradox? Найти похожие ветки
← →
Aleksandr (2003-04-08 15:05) [0]У меня таблицы хранятся на MS SQL Server. По запросу пользователя они скидываются в таблицы Парадокс. Берется шаблонная парадоксовая таблица, копируется в папку на выход, создается динамический TTable, и потом по-записьно в нее ведется запись из MS SQL ADOQuery. Но у этого способа есть ряд недостатков, в частности, парадоксовой таблице, например, надо делать перед началом записи FieldDefs.Update, а при вызове этого метода почему-то периодически происходит зависание обрабатывающего потока (причем вне зависимости от обработки try..finally, try...except). Ну и истчо бывают глюкавости. Есть какая-то альтернатива такой работе с БДЕ?
← →
sniknik (2003-04-08 15:22) [1]и довольно много.
но лутше использовать средства самого MSSQL (DTS к примеру) или линк сервер, или (мне больше нравится) запросы к OPENDATASOURCE ,изначально таблицу надо сделать или скопировать как у тебя а после простой запрос INSERT INTO OPENDATASOURCE...
посмотри в Bol.
← →
Aleksandr (2003-04-08 15:58) [2]2 sniknik ©:
Будьте добры, а нельзя ли ссылку на описание работы по OpenDataSource или что-нибудь по-детальнее?
← →
sniknik (2003-04-08 16:12) [3]у тебя MSSQL стоит? там есть Books Online, запусти набери в указателе OpenDataSource ... самое детальное описание
оттуда примеры
Examples
This example accesses data from a table on another instance of SQL Server.
SELECT *
FROM OPENDATASOURCE(
"SQLOLEDB",
"Data Source=ServerName;User ID=MyUID;Password=MyPass"
).Northwind.dbo.Categories
This is an example of a query against an Excel spreadsheet through the OLE DB provider for Jet.
SELECT *
FROM OpenDataSource( "Microsoft.Jet.OLEDB.4.0",
"Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0")...xactions
второй тебе почти подходит, немного исправить под парадокс, примерно так
INSERT INTO OpenDataSource("Microsoft.Jet.OLEDB.4.0", "Data Source="d:\";Extended properties=Paradox 4.x")...temp_mvu (a, b) VALUES (5,"Test String")
и готово (почти), осталось изменить на не позаписьный инсерт а пакетный из таблици и все (но это думаю и сам сможеш)
← →
Aleksandr (2003-04-08 16:23) [4]Большое спасибо! Счас попробую... Только один вопрос - а Парадокс он только 4.х поддерживает? А то у меня таблицы 7.0.
← →
sniknik (2003-04-08 16:26) [5]седьмой последний (пока), ставь Paradox 7.x".
← →
Aleksandr (2003-04-08 16:45) [6]Млин, ругается... пишу:
INSERT INTO OpenDataSource("Microsoft.Jet.OLEDB.4.0","Data Source="C:\RI\Bases\firms.db";Extended properties=Paradox 7.x")...SELECT * FROM Firms
Что-то не так?
← →
Aleksandr (2003-04-08 16:58) [7]Сорри, не то вписал. Пишу вот так:
INSERT INTO OpenDataSource("Microsoft.Jet.OLEDB.4.0","Data Source="D:\RI\Bases\";Extended properties=Paradox 7.x")..."Firms.db" SELECT * FROM [dbo].RI.firms
Сообщает:
OLE DB provider "Microsoft.Jet.OLEDB.4.0" does not contain table "Firms.db". The table either does not exist or the current user does not have permissions on that table.
Хотя на СКулу доступ у меня виндовый, а на парадокс паролей и нет.
← →
Aleksandr (2003-04-08 17:10) [8]Во млин... что-то вообще не срастается - убрал расширение, все отлично, а по выполнении говорит:
OLE DB provider "Microsoft.Jet.OLEDB.4.0" reported an error.
[OLE/DB provider returned message: Invalid operation.]
← →
sniknik (2003-04-08 17:27) [9]да в общем с виду запрос правильный (исключая кавычки, привычка с Local SQL?) хотя ругается на неправильный оператор.
попробуй так (подключение к базе из которой копируеш, в смысле не к master или какой еще)
INSERT INTO OpenDataSource("Microsoft.Jet.OLEDB.4.0","Data Source="D:\RI\Bases";Extended properties=Paradox 7.x")...Firms SELECT * FROM firms
и еше на разных таблицах попробуй посмотреть зависит нет.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.04.24;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c