Страница 1 из 2

Доступ к БД из Delphi

Добавлено: 24 апр 2004, 16:26
Nick
Как можно залезть в БД Галактики извне (из Delphi например)?

Re: Доступ к БД из Delphi

Добавлено: 25 апр 2004, 14:10
Vitas
Через ODBS или используя API

Re: Доступ к БД из Delphi

Добавлено: 26 апр 2004, 07:06
homak
Я как то видел компоненьы Delphi, дя доступа к Pervasive SQL2000i.

Re: Доступ к БД из Delphi

Добавлено: 26 апр 2004, 13:34
Max_Fin
расскройте секрет, где конкретно :P

Re: Доступ к БД из Delphi

Добавлено: 26 апр 2004, 15:46
Nick
Да, расскажите пожалуйста - где, и где можно почитать чего по теме. Решил сделать автозагрузку курсов валют из Internet, а то надоело ручками вбивать. Из инета данные стянуть не проблема, а вот запихать их в Галактику - да. Я так понял, там две таблицы для валют: одна - список заведенных валют, вторая - собственно их курсы. Проблемы в запихе именнов доступе - запросы SQL должны юыть простыми.
А можт есть уже готовые решения?

Re: Доступ к БД из Delphi

Добавлено: 26 апр 2004, 15:56
Goblin
Мах_Fin,
www.reggatta.com если не ошибаюсь,
кличутся они Titan Btrieve

Re: Доступ к БД из Delphi

Добавлено: 26 апр 2004, 16:39
yuri_z
Проблема генерить случайный nrec, API существует во многих менеджерах, однако доступ аналогичный ODBC по словарю.

Re: Доступ к БД из Delphi

Добавлено: 27 апр 2004, 11:33
boris
Смотрите на сайте www.pervasive.com
там есть компонент PDAC для доступа к первазивовским базам

Re: Доступ к БД из Delphi

Добавлено: 06 май 2004, 15:24
Nick
>Мах_Fin,
>www.reggatta.com если не ошибаюсь,
>кличутся они Titan Btrieve

Можт кто ключик кинет еще, я скачал, а ключа нигде не могу найти.

Re: Доступ к БД из Delphi

Добавлено: 08 май 2004, 02:45
Nick
А вот такой вопрос: Делаю я выгрузку в DBF:
Select katorg.name From katorg To dbf;
Ну и имеем:

[наим.организации или ФИО]

СП "Колос"
...
...

Что не нравится:
1. Название поля по Русски. нет ли таких конструкций типа: select abc.def as field01 ... ?
2. Все выгруженное в Dos-Кодировке - как побороть?

Re: Доступ к БД из Delphi

Добавлено: 08 май 2004, 15:03
Nick
Поправка - 1. название поля не по русски а наз-ся "Name" - можно ли его изменить (тип, имя)?

Re: Доступ к БД из Delphi

Добавлено: 08 май 2004, 18:09
ira
Вот примерчик:
Select String (Integer (LTrim (KatPodr.Kod)), 5)
(FieldName = KOD, Length = 5), // Код подразделения

String (KatPodr.Name, 30)
(FieldName = NAIM, Length = 30) // Наименование подразделения
From
KatPodr

To DBF podraz.dbf;

Re: Доступ к БД из Delphi

Добавлено: 08 май 2004, 21:39
Nick
Спасибо! класс!
Единственное что осталось - как решить с Dos - кодировкой? Иначе весь смысл выгрузки пропадает.

Пока выгружаю так:
1. Выгрузка в txt файл в Dos формате;
2. Преобразование Dos -> Win1251 (прога на delphi);
3. Проход по файлу, парсинг и запихивание в DBF (прога на delphi);

Через Владивосток в Москву - но кодировка блин... мешает иначе :)

Re: Доступ к БД из Delphi

Добавлено: 10 май 2004, 06:32
IgorA
Если Пункты 2 и 3 на Delphi, то что мешает работать в DOS кодировке?
(Во всяком случае BDE`шка знает кодовую страницу DOS)

Re: Доступ к БД из Delphi

Добавлено: 11 май 2004, 03:30
Nick
Нэ понял :)
> что мешает работать в DOS кодировке
где работать мешает? в Delphi?

Просто это будет выгрузка платежек в Банк-Клиент. Я хотел прямым ходом пихать данные из Галактики в DBF для экспорта - но они выгружаются в Dos кодировке (кстати а как дату выгружать - как строку?) и поле DBF, отвечающее за кодировку пустое при такой выгрузке. Ну а банку надо в Win1251. Поэтому такие мудреные алгоритмы, т.к. по - другому пока не знаю как.

А можт у кого есть примерчики (SQL) выгрузок платежек - киньте пожалуйста - буду благодарен, а то пока опыта нет особо, мучаюсь с этим SQL, поле 'основание' чего-то не пойму как прикручено к plpor.

Я делаю пока так:

Select
plpor.nodok, plpor.datvip, plpor.datob,
org_plt.name, org_plt.unn, bank_plt.name, bank_plt.mfo1, bank_plt.mfo2, bank_plt.schet1, bank_plt.schet2,
org_pol.name, org_pol.unn, bank_pol.name, bank_pol.mfo1, bank_pol.mfo2, bank_pol.schet1, bank_pol.schet2,
plpor.sumplat
From
plpor,
katorg org_plt,
katorg org_pol,
katbank bank_plt,
katbank bank_pol
where
(( date(06, 01, 2001) /== plpor.datvip
and plpor.cplat /== org_plt.nrec
and plpor.cpol /== org_pol.nrec
and plpor.cbankplat /== bank_plt.nrec
and plpor.cbankpol /== bank_pol.nrec
)) to txt;