Форум: "Базы";
Текущий архив: 2002.11.28;
Скачать: [xml.tar.bz2];
ВнизСоздание таблицы в формате dBase-IV Найти похожие ветки
← →
Siv M (2002-11-07 17:45) [0]Доброго времени суток всем.
Есть БД под управлением MS SQL. Необходимо из таблиц сохранять некоторые записи в формате dBase-IV причем таблица dBase по полям не является идентичной ни одной из таблиц MS SQL.
Как можно все это пофиксить?
← →
sniknik (2002-11-07 18:17) [1]Запросом (insert into) в линк сервер.
← →
Siv M (2002-11-08 13:25) [2]Спасибо, что откликнулись, sniknik.
Но можно ли поподробнее? И как в файле сохранить таблицу?
← →
Siv M (2002-11-08 14:45) [3]Народ помогите!!!
← →
Siv M (2002-11-08 17:21) [4]Народ где Вы???
← →
sniknik (2002-11-08 17:48) [5]делаеш линк (все командами SQL)
EXEC sp_addlinkedserver
@server = "MYDBFs",
@provider = "Microsoft.Jet.OLEDB.4.0",
@srvproduct = "OLE DB Provider for Jet",
@datasrc = "D:\",
@provstr = "dBASE IV"
обрашаешся к таблице в линке
INSERT INTO MYDBFs...MYTable (ПОЛЯ 1 2 3) SELECT ПОЛЯ 1 2 3 FROM набор откуда
должен проходить и SELECT INTO MYDBFs...MYTable .... если в новую таблицу
← →
Siv M (2002-11-08 19:26) [6]Извините, за глупые вопросы:
1. При этом образуется новый файл dBase-IV содержащий данные согласно запроса?
2. Что такое @datasrc = "D:\" - каталог куда будет сохранена таблица?
3. Для того, чтобы использовать подобный запрос необходимо воспользоваться ADOCommand?
4. Почему нельзя соединиться через OLE DB Provider for Jet с таблицей dBASE IV - ищет файлы *.mdb?
← →
sniknik (2002-11-08 22:42) [7]1. Ну да.
2. Каталог "База", аналог MDF файла MSSQL содержащего базу.
3. ADOCommand или ADODataset можно также но нежелательно ADOQuery. Либо при конекте через BDE (совсем нехорошо) Query. А в общем то дело привычки. Для тестов запроса пользуйся Query Analiser-ом из поставки MSSQl.
4. *.mdb это родной формат, dBASE IV один из ISAM-ов надо указывать в Extended Properties.
вся строка Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\;Extended Properties=dBase IV;Persist Security Info=False (не всегда именно такая возможны варианты и много)
по моему ты отклонился от вопроса ведь хотел именно из MSSQL (пусть через дельфи) а вопрос последний по прямому соеденению. если это продолжение то ты чтото путаеш.
← →
Siv M (2002-11-11 14:26) [8]Получилось, но не все. Создался линк-сервер, в нем нет таблиц.
Однако никак не получается создать новую таблицу из существующей MS SQL. Запрос такой:
Select * Into MYDBFs.Reportzz from keeper.dbo.report
При этом ругается:
Specified owner name "MYDBFs" either does not exist or you do not have permission to use it.
Как сие пофиксить?
← →
sniknik (2002-11-11 15:03) [9]Ну на самом деле я ошибся из MSSQL, Select * Into во внешний источнок работать наверное не будет, надо insert into (предварительно создав таблицу, это точно работает). (а может это я сейчас ошибаюсь)
создать можно со строкой как в 4 пункте sniknik © (08.11.02 22:42) например.
обращение к линку не MYDBFs.Reportzz а MYDBFs...Reportzz.
еще с permission -нами, проставь в свойствах линка be made wihtout using a security context
или выполни после создания
EXEC sp_addlinkedsrvlogin MYDBFs,false,NULL,NULL,NULL
← →
Siv M (2002-11-12 11:09) [10]Уже из таблиц могу сделать выборку, а вот создать таблицу, ну никак не получается.
Делаю:
CREATE TABLE MYDBFs...mytable
(
low int,
high int,
myavg AS (low + high)/2
)
Ругается:
The object name "MYDBFs..." contains more than the maximum number of prefixes. The maximum is 2.
Пишу тогда так:
CREATE TABLE MYDBFs.mytable
(
low int,
high int,
myavg AS (low + high)/2
)
Не ругается, но и в директории таблицу не создает. Вообшем то ее вообще нигде нет.
Что за ерунда?!
← →
sniknik (2002-11-12 11:15) [11]подключись со строкой
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\;Extended Properties=dBase IV;Persist Security Info=False
(другой коннект сделай только для создания таблиц)
с таким конектом запускай ADOCommand c
CREATE TABLE mytable
(
low int,
high int
)
myavg AS (low + high)/2 ?? кстати что это? новый способ определения поля, где узнал? так поля не задают, поменяй.
← →
Siv M (2002-11-12 17:08) [12]В стандартном Хелпе по MSSQL есть данный примерчик вместе с myavg AS (low + high)/2.
Ну а вообще, все получилось!!!
← →
sniknik (2002-11-12 18:21) [13]а понятно, ну так то MSSQL! там еще и не то возможно, это не поле а привязаная функция, для dbf такое не катит с сожалению. :(.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.11.28;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c