![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создание таблицы в формате dBase-IV [D6, MS SQL]
Siv M © (2002-11-07 17:45:00)Доброго времени суток всем.
Есть БД под управлением MS SQL. Необходимо из таблиц сохранять некоторые записи в формате dBase-IV причем таблица dBase по полям не является идентичной ни одной из таблиц MS SQL.
Как можно все это пофиксить?
sniknik (2002-11-12 18:21:00) [1]а понятно, ну так то MSSQL! там еще и не то возможно, это не поле а привязаная функция, для dbf такое не катит с сожалению. :(.
Siv M (2002-11-12 17:08:00) [2]В стандартном Хелпе по MSSQL есть данный примерчик вместе с myavg AS (low + high)/2.
Ну а вообще, все получилось!!!
sniknik (2002-11-12 11:15:00) [3]подключись со строкой
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 11:09:00) [4]Уже из таблиц могу сделать выборку, а вот создать таблицу, ну никак не получается.
Делаю:
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-11 15:03:00) [5]Ну на самом деле я ошибся из 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-11 14:26:00) [6]Получилось, но не все. Создался линк-сервер, в нем нет таблиц.
Однако никак не получается создать новую таблицу из существующей 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-08 22:42:00) [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-08 19:26:00) [8]Извините, за глупые вопросы:
1. При этом образуется новый файл dBase-IV содержащий данные согласно запроса?
2. Что такое @datasrc = "D:\" - каталог куда будет сохранена таблица?
3. Для того, чтобы использовать подобный запрос необходимо воспользоваться ADOCommand?
4. Почему нельзя соединиться через OLE DB Provider for Jet с таблицей dBASE IV - ищет файлы *.mdb?
sniknik (2002-11-08 17:48:00) [9]делаеш линк (все командами 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 17:21:00) [10]Народ где Вы???
Siv M (2002-11-08 14:45:00) [11]Народ помогите!!!
Siv M (2002-11-08 13:25:00) [12]Спасибо, что откликнулись, sniknik.
Но можно ли поподробнее? И как в файле сохранить таблицу?
sniknik (2002-11-07 18:17:00) [13]Запросом (insert into) в линк сервер.