Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Paradox таблицы в SQl используя ADO [D5, Paradox]


VoronBor ©   (2003-04-28 02:56:00) 

Есть БД парадох test.db . Хочу использовать PivotTable (из Microsoft Office Web Components). Соответственно хочу связать БД с PivotTable Для этого делаю:

P : Variant;
………….

OleContainer1.CreateObject("OWC.PivotTable.9",False);
P := OleContainer1.OleObject;

P.ConnectionString := "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\;Extended Properties=Paradox 7.x; Mode=Read|Write|Share Deny None;Persist Security Info=True";
PT.CommandText := "SELECT * FROM [Paradox 7.x;DATABASE=D:\].[test#DB]";


ConnectionString – правильная (точнее рабочая…), я ее в с ADOTabl проверял. А вот CommandText явно не правильная…
Помогите плиз, как при использование ADO обращаться к БД парадох?


sniknik   (2003-04-28 23:52:00) [1]

ну судя по той ошибке что он мне выдал то хочется ему именно OLE DB, и прямая тебе дорога (если именно так работать вынужден/хочется) на Access(mdb)/MSSQL базы тк. именно под них/в связке OLE DB делался и поддерживают/будут поддерживать все его спецификации. а IB если даже найдеш (думаю возможно) эти самые OLE DB драйвера, то гарантий по всем спецификациям не будет т.к. будут они "левые", т.е. не от микрософта кто эти специфекации разрабатывает и которые собственно "правые" (не путать с "лутше" "хуже"!).

все это как сам должен понимать, жестокое ИМХО и не в форме утверждения. сам думай.


VoronBor   (2003-04-28 22:25:00) [2]

>??? зачем перевирать?? ты по идее должен стремится исправить ошибку а не затруднить >поиск.
Да нет, именно так и пишет. Что меня и насторожило – думал что запрос не правильно составил.

>попробуй так, (как минимум откроется)
Спасибо добрый человек! Заработало. :)

>PT.CommandText:= "SELECT * FROM [Paradox 7.x;DATABASE=D:\].[car#DB]"; //а зачем >собственно именно парадокс?
Да вот и я думаю что надо на IB или FB переходить – оно мне в наследство досталось. :)
Только вот где достать АДО провайдера для IB? Имхо нужен же он?
Или я что-то принципиально не понимаю. С АДО вообще не работал… :-\

Еще раз спасибо - хоть как то работает, теперь можно уж не спеша думать как надо корректно. :)


sniknik   (2003-04-28 21:39:00) [3]

> «Источник данных не определен»
он его хчет "видеть" в CommandText (источник)

> А если с не, то: The initialization string specified does not conform to specificiation
??? зачем перевирать?? ты по идее должен стремится исправить ошибку а не затруднить поиск.
должно звучать так. "Format of the initialization string does not conform to the OLE DBspecificiation" (нужен "чистый" OLE DB коннект, ну судя по ошибке, ну не хочет он с доп.параметрами работать.
попробуй так, (как минимум откроется)

var
PT : Variant;
begin
OleContainer1.CreateObject("OWC.PivotTable.9",False);
PT := OleContainer1.OleObject;

PT.ConnectionString:= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= D:\Base.Mdb;Persist Security Info=False"; //любой пустой
PT.CommandText:= "SELECT * FROM carIN "D:\" "Paradox 7.x;"";
или равнозначное
PT.CommandText:= "SELECT * FROM [Paradox 7.x;DATABASE=D:\].[car#DB]"; //а зачем собственно именно парадокс?

With OleContainer1 do Begin
AutoActivate:= aaManual;
DoVerb(ovShow);
End;
end;


VoronBor   (2003-04-28 20:11:00) [4]

> sniknik © (28.04.03 17:03)
Извиняюсь что ошибку не привел - знаю же что телепаты в отпуске.. :)
Да собственно говоря особо и негде то глюк искать… Вот полный текст.
var
PT : Variant;
begin
// создаем объект
OleContainer1.CreateObject("OWC.PivotTable.9",False);
PT := OleContainer1.OleObject;

// заполняем свойства
PT.ConnectionString := "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\;Extended Properties=Paradox 7.x; Mode=Read|Write|Share Deny None;Persist Security Info=True";
PT.DataMember:="[Paradox 7.x;DATABASE=D:\].[car#DB]";

// открываем
With OleContainer1 do
Begin
AutoActivate:= aaManual;
DoVerb(ovShow);
End;
end;


Беда явно в PT.DataMember:="[Paradox 7.x;DATABASE=D:\].[car#DB]";
если ее закомментировать, то компилируется и в PivotTable написано
«Источник данных не определен»

А если с не, то: The initialization string specified does not conform to specificiation
Вот я и думаю, может не так написал..


sniknik   (2003-04-28 17:03:00) [5]

> PT.CommandText := "SELECT * FROM [Paradox 7.x;DATABASE=D:\].[test#DB]";
> А вот CommandText явно не правильная…

правильная (если конечно именно в таком виде в программе стоит). ищи глюк в программе. особое внимание на ощибку какую выдает при Open (и которую не приводиш).


Гость   (2003-04-28 16:07:00) [6]

Может быть
SELECT * FROM [Paradox 7.x;DATABASE=D:\].[test.DB] ?

Но не уверен



Наверх

Титульная страница Поиск, карта сайта Написать письмо