|
Вопрос # 742/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
Как сделать что-бы программыс таблицами - даже с одной - работали и без Delphi? Ещё - я правильно понимаю - что-бы в Rave-report шли связанные таблицы надо связывать из по ADO? Если так, то где прочитать про это - ку меня есть десяток эл. книг - но всё как-то поверхностно. Delphi изучаю недавно, но я способный :)
 |
Вопрос задал: Бояджи Вадим Валерьевич (статус: Посетитель)
Вопрос отправлен: 13 июля 2007, 15:34
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, Бояджи Вадим Валерьевич!
1) Забыть о DBE. Не использовать его.
2) Не писать прямых путей, только относительные либо давать возможность задать их в настройках.
3) отключить использование Run-Time пакетов.
По поводу RaveReport ничего не скажу - не использовал.
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 13 июля 2007, 15:48
|
Мини-форум вопроса
Всего сообщений: 18; последнее сообщение — 16 июля 2007, 22:24; участников в обсуждении: 3.
|
Бояджи Вадим Валерьевич (статус: Посетитель), 13 июля 2007, 15:55 [#1]:
Насчёт путей - конечно. Напрмер на форме DataSource, Table и DBGrid - у Table в FileName записано Names.db - вообще без путей - и уже только с Delphi А если не использовать DBE, тогда что использовать? Спасибо за ответы
|
|
Вадим К (статус: Академик), 13 июля 2007, 16:02 [#2]:
С вашего ответа вижу, что у вас бде. Можно использовать ADO - очень неплохо получается. немножко усилий, и только используем другие, но подобные компоненты. А так всё похоже будет.
Нам надо будет TAdoConnections - для подключения к базе.
TAdoTable вместо TTable
TADOQuery вместо TQuery и так дальше. Только вместо алиаса мы теперь прописываем свойство Connection
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Бояджи Вадим Валерьевич (статус: Посетитель), 13 июля 2007, 16:07 [#3]:
Да вот утром боролся с ADO - ничего не пойму - вроде по правилам создал БД, в БДЕ администраторе зарегистрировал псевдоним, - не предлагает мне ADOTable имя таблицы выбрать - хоть умри. А если насильно записать Инспекторе объектов - припопытке ADOTable активировать всё равно пишет что такой объект не найден...
|
|
Бояджи Вадим Валерьевич (статус: Посетитель), 13 июля 2007, 16:09 [#4]:
И вообще-то а нужно-ли так уж создавать БД да с псевдонимом - может достаточно просто двух (или более) таблиц?
|
|
Вадим К (статус: Академик), 13 июля 2007, 16:14 [#5]:
всё вам решать. алиасы создали для решения проблемы с полными путями. Звучало заманчиво - в BDE Administrator'е попровили путь и пару настроек и приложение работает. Но сейчас отказались от BDE.
>>может достаточно просто двух (или более) таблиц?
Это вам виднее. Хотя выбор вы дали неверно. две таблицы, даже без алиаса это всё равно БД.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Вадим К (статус: Академик), 13 июля 2007, 16:16 [#6]:
>>Да вот утром боролся с ADO - ничего не пойму - вроде по правилам создал БД, в БДЕ администраторе зарегистрировал псевдоним
Эти вещи не совместимы межды собой. Если говорить простыми приблежениями, то TAdoConnection выполняет роль BDE Administrator'а
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Бояджи Вадим Валерьевич (статус: Посетитель), 13 июля 2007, 16:22 [#7]:
Ого, так что-же мне может из BDE админа удалить мой псевдоним?
|
|
Вадим К (статус: Академик), 13 июля 2007, 16:26 [#8]:
можно и бде админа удалить, если хочеться - он не мешает ADO. Правда не советую удалять. мало чего там делфи может не найти и ругаться захочет.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Бояджи Вадим Валерьевич (статус: Посетитель), 13 июля 2007, 16:38 [#9]:
Вот я в АДОКонекшен пишу Provider=MSDASQL.1;Persist Security Info=False;Data Source=dBASE Files;Mode=ReadWrite;Extended Properties="DSN=dBASE Files;DBQ=D:\Shop;DefaultDir=D:\Shop;DriverId=533;MaxBufferSize=2048;PageTimeout=5;";Initial Catalog=D:\Shop Нажимаю Коннектед - есть коннектед. В АДОТейблах пишу Коннекшен - АДОКоннекшен, а таблицы выбирать не дают. Датасурсы обычные TDataSource - правильно? Не надо каких-то других?
|
|
Вадим К (статус: Академик), 13 июля 2007, 16:43 [#10]:
TDataSource - да обычные. А кто включит соединение?AdoConnection.active=true;???
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Бояджи Вадим Валерьевич (статус: Посетитель), 13 июля 2007, 17:21 [#11]:
Ну так в Объект инспекторе ставлю Connected в True - съедает, вроде нормально. Не, я в принципе не пойму - если не объект инспекторе всключать Connected в True, а в проге, скажем кнопкой какой - то как-же я в DBGrid'ах задам колумны, и всякие там мастерсурсы и мастерфилфы у ADOTable-ов? А всё это в проге уже задавать - заморочно...
|
|
Вадим К (статус: Академик), 13 июля 2007, 17:27 [#12]:
Включили в инспекторе. Настроились. Потом отключили и запускаем прогу. Конечно не забываем добавить включение оного в проге.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Бояджи Вадим Валерьевич (статус: Посетитель), 13 июля 2007, 17:35 [#13]:
Я как Вы говорите поробовал: отключил AdoConnection1 и
procedure TForm1.Button1Click(Sender: TObject);
begin
AdoConnection1.Open;
ADOTable1.TableName:='D:\Shop\Projects.db';
ADOTable1.Active:=true;
Button1.Caption:=ADOTable1.TableName;
end;
Ну кепшен - это для контроля. По прежнему ругается что Project CyberVadShop raised exception class EOleException with message 'Недопустимое значение свойства. Убедитесь что значение введено правильно.'
|
|
Вадим К (статус: Академик), 13 июля 2007, 17:43 [#14]:
>>ADOTable1.TableName:='D:\Shop\Projects.db';
Так нельзя. Может перейдёте на Аксес? Проблем меньше. Сразу скажу, что юзать надо JET драйвер. и работать будет даже на 200 чистой винде.
Но такое присвоение в адо вообще не допустимо. вам нужно вначале сформировать струку подключения. А потом подключиться. И лишь потом задать таблицу, но не ввиде файла, а в виде имени таблицы.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Бояджи Вадим Валерьевич (статус: Посетитель), 13 июля 2007, 17:48 [#15]:
Нет уж спасибо, аксес не надо, буду дельфи бороть. Вот недавно написал прогу - чат по сети - со смайликами, всеми делами. И БД победим! Спасибо. Буду дальше думать.
|
|
Вадим К (статус: Академик), 13 июля 2007, 17:51 [#16]:
не надо путать сам аксес и jet драйвер. в данном случае аксес используется как удобный инструмент для создания таблиц и тестирования запросов. Но для работы программы он совсем не нужен.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Бояджи Вадим Валерьевич (статус: Посетитель), 14 июля 2007, 09:41 [#17]:
Добрейшего утра!! Я дико извиняюсь – вчера я последнюю Вашу фразу «Может перейдёте на Аксес? Проблем меньше.» неправильно понял – я понял, типа, не заняться-ли Вам чем-то другим и оставить Delphi в покое. Но дома, ближе к полуночи, раньше никак, я подраскинул мозгами (как Штирлиц) и понял смысл всего сказанного и работа закипела. DataBase Desctop почему-то отказался создавать БД для Аксеса, но я не унывал. Запустил Аксес-2003 и влёгкую сделал новую БД с двумя таблицами. Далее в ADOConnection создал по новой Connection String, указал на провайдера Microsoft Jet 4.0 OLE DB Provider, указал на мою новую БД *.mdb.
В Object Inspector у ADOConnection Connected? Есть Connected! Потом как обычно – в ADOTable’s выбираются TableName, Active, DataSource’s кивают на свои ADOTable’s, ну там MasterSource, MasterField – и всё! Это всё в Object Inspector, в проге ничего не надо включать-подключать. Мало того что работает, так ведь работает и на компе где Delphi нет и не будет! Собственно, что и требовалось доказать. Ну, а теперь когда две таблицы удалось связать по ADO, я не сомневаюсь, что и RaveReport будет печатать то что надо, то есть краткую информация о проекте и всю технику с ним связанную.
ОГРОМНОЕ ВАМ МЕРСИ ЗА НАСТАВЛЕНИЕ НА ПУТЬ ИСТИННЫЙ!
Искренне Ваш Бояджи Вадим Валерьевич, ака CyberVad.
|
|
Градов Ю.М. (статус: 8-ой класс), 16 июля 2007, 22:24 [#18]:
В дополнение ко всему, я бы посоветовал компонент DBISAM Additional Software and Utilities (платный) в связке с FastReport (бесплатен - версия Free)
[URL]http://www.elevatesoft.com/scripts/download.dll?action=listprod&product=dbisam[/URL]
[URL]http://soft-free.ru/content/view/3894/113/[/URL]
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|