![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Формирование CREATE TABLE [D5, MSSQL, dBase, FoxPro, ADO]
John Kayfolom © (2002-05-16 13:30:00)Необходимо сформировать SQL запрос на создание таблицы (в MSSQL2000), на основе имеющихся данных в открытой ADOTable (она может смотреть на DBF или еще куда).
Сейчас делаю тупо - читаю ADOTable.Fields.Fields[I].DataType,
и подставляю соответственные типы полей MSSQL в "CREATE TABLE ...".
Может кто видит более красивый путь? Или имеет готовый компонент?
Заранее благодарю.
AVP (2002-06-14 10:13:00) [1]Please help me if you can!
Пытаюсь в D5 с помощью DAO сжать базу Access.
При выполнении CompactDatabase возникает Error:Could not find installable ISAM.
Как справиться с этой ошибкой?
John Kayfolom (2002-05-25 15:24:00) [2]Сделал все таки по своему... Составил таблицу соответствия типов MSSQL<->DBF и создаю CREATE TABLE...
Вот может у кого есть информация о других базах? VFP, Access, Paradox? Уж очень лениво самому все выдирать....
sniknik (2002-05-16 19:10:00) [3]А разве "D:\Work\Zip" он будет искать ..
Именно на том, где сервер и пути от него стоится должны.
Could not find installable ISAM
говорит о том что у тебя не установлен Jet на той машине где пытается выполнить, похоже на сервере. (MSSQL оттуда выполняется)
значит нужно установить MDAC + JET.
либо исам неправильно прописан "dBase III" сравни это в реестре с ISAM форматами Jet-а (это вряд ли, такой точно есть)
а проще используй мою строку с ODBC. Только проверь (там же на сервере) есть там такой драйвер. Это в настройках ODBC вкладка Drivers. Но скорее всего есть его микрософт везде пихает последнее время.
(согласен тут путаница получается, привыкнуть надо, изза того что это не ты это запускаеш а вроде как MSSQL об этом просиш и он обращается к JET, ODBC. поэтому все от него надо считать)
John Kayfolom (2002-05-16 18:41:00) [4]Что-то не пойму, запрос
SELECT * INTO ZARPL
FROM
OpenRowset(
"Microsoft.Jet.OLEDB.4.0",
"Data Source="C:\TEMP";Extended Properties=dBase III;Persist Security Info=False",
"select * from ZARPL")
выдает ошибку
OLE DB provider "Microsoft.Jet.OLEDB.4.0" reported an error.
[OLE/DB provider returned message: Could not find installable ISAM.]
Голова уже не варит... :(
John Kayfolom (2002-05-16 18:36:00) [5]А разве "D:\Work\Zip" он будет искать не на том же серваке где располагается SQLсервер?
sniknik (2002-05-16 18:01:00) [6]да нет все понятно и вариантов решения просто масса
вот мне нравится (не надо линков делать и от глюка одного избавляет)
в подкключении ADOConnection->SQLOLEDB.1->SQLSERVER->pubs. вызови SQL запрос (таблици свои поставь)
SELECT * INTO CashSail
FROM OpenRowset("MSDASQL.1", "Driver={Microsoft dBase Driver (*.dbf)};DBQ=D:\Work\Zip;", "select * from CashSail")
правда здесь драйвер ODBC но при желании можно и Microsoft.Jet.OLEDB.4.0 использовать (вначале так и делал пока глюк не поймал, не возвращалась память после запроса и хендлы в системе росли до повисания)
John Kayfolom (2002-05-16 17:52:00) [7]2 sniknik
Это понятно, на SQL сервере это без проблем, но как я это сделаю в моей проге? Может непонятно объяснил, вот более конкретно:
надо из ADOTable->ADOConnection->Microsoft.Jet.OLEDB.4.0
->MyTable.dbf поиметь структуру MyTable.dbf и создать аналогичную таблицу в ADOConnection->SQLOLEDB.1->
SQLSERVER->pubs.
DTS не подходит по неким причинам...
sniknik (2002-05-16 13:52:00) [8]запросом SELECT INTO, сама создаст.