Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / ODBC / 15 сообщений из 15, страница 1 из 1
03.05.2005, 19:28
    #33046936
sboyko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ODBC
Великий All!
Есть небольшое приложение на ПБ9 - связь с данными через ОДБС(база на Аксесе). Хочется -чтобы пользователи не устанавливали(конфигурировали) свойства ОДБС. Хочется, чтобы эта база на Аксесе была в .\- то есть, там же где и приложение-в той же папке. Как это сделать?
...
Рейтинг: 0 / 0
03.05.2005, 19:36
    #33046948
__Yorik__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ODBC
Насколько я знаю - без настройки профиля ODBC не получится
Для такой задачи хорошо VB+Access - там точно ничего не настраивать :)
...
Рейтинг: 0 / 0
03.05.2005, 19:48
    #33046962
sboyko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ODBC
Не подходит! ПБ -свет в окошке. Но для простых задач - хочется работать без установщика и настроек-простым копированием. На Дельфи - данные из ОДБС переходят в программу и могут быть отредактированы так что база ищется рядом с приложением.
А будущий пользователь еще и заграницей - много тут наконсультируешь!
...
Рейтинг: 0 / 0
03.05.2005, 19:56
    #33046975
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ODBC
Использовать DSNless connection - provide proper information in your connect
object's ConnectString parameter:
Типа
string ls_dbparm
ls_dbparm =
"ConnectOption='SQL_DRIVER_CON­NECT,SQL_DRIVER_NOPROMPT',Disa­bleBind=0,DelimitIdentifier='Y­es',ConnectString='Driver={Dri­ver};UID={Db_user_1};PWD={Db_p­assword_1};DBF=~"{Database_fil­e}~";ENG={Name_engine} Database;DBN=~"{Database_name}­~";START={Start}'"


replace anything in {} brackets with appropriate values, assign it to
connection object's dbparm (such as SQLCA.dbparm), and execute CONNECT function.
...
Рейтинг: 0 / 0
03.05.2005, 20:24
    #33047002
rcryo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ODBC
попробуй так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
transaction ltr_access
string ls_connect, ls_databasefile, ls_driver

ltr_access = CREATE transaction

ls_DataBaseFile = "Data.mdb" 
ls_Driver = "Microsoft Access Driver (*.mdb)"

ls_connect = "'" + &
	"DBQ=" + ls_DataBaseFile + &
	";Driver=" + ls_Driver + &
	";FIL=MS Access;" + &
	"'"

ltr_access.DBMS 		= "ODBC"
ltr_access.Autocommit 	= False
ltr_access.DbParm 	= "ConnectString=" + ls_connect

connect using ltr_access;
MessageBox('Test', 'SQLCode:' + string(ltr_access.SQLCode) + '~r~n' +ltr_access.SQLErrText )

dw_1.SetTransObject(ltr_access)
dw_1.Retrieve()

Destroy ltr_access
...
Рейтинг: 0 / 0
03.05.2005, 21:52
    #33047051
sboyko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ODBC
большое спасибо. будем пробовать
...
Рейтинг: 0 / 0
04.05.2005, 12:03
    #33047766
gerss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ODBC
В принципе, настройки профиля ODBC можно сделать простым прописыванием в реестр из самой программы. Нужно только посмотреть, в какие ключи реестра и что прописывается. К сожалению, под рукой нет примера, но такое делать приходилось.

Сергей
...
Рейтинг: 0 / 0
04.05.2005, 13:01
    #33047940
Ikar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ODBC
gerssВ принципе, настройки профиля ODBC можно сделать простым прописыванием в реестр из самой программы. Нужно только посмотреть, в какие ключи реестра и что прописывается. К сожалению, под рукой нет примера, но такое делать приходилось.
Я, когда мне это нужно было, именно так и делал. Как точно - уже не вспомню, да и посмотреть сейчас негде, но порядок действий такой:

1. Ручками создаем источник.
2. Выдераем из реестра все его записи (ключи HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI и HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI - для системного DSN, для пользоватеьского тоже самое в разделе HKEY_CURRENT_USER)
3. Создаем в РВ функцию, которая эти параметры в реестре проверяет и, если нужно, прописывает или обновяет.
4. Соответственно в тех местах, где нужно указываем свои пути к файлам.

OffTop:
2 gerss: не стареют душой ветераны! ;-)

---
С уважением, IKAR

ikarhomecenter@narod.ru
IkarHomeCenter
...
Рейтинг: 0 / 0
04.05.2005, 16:38
    #33048613
gerss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ODBC
IkarOffTop:
2 gerss: не стареют душой ветераны! ;-)

---

OffTop: Есть такая бага!!! ;-)
...
Рейтинг: 0 / 0
05.05.2005, 02:09
    #33049360
c127
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ODBC
2 gerss

>OffTop: Есть такая бага!!! ;-)

В следующей версии обещали исправить.
...
Рейтинг: 0 / 0
05.05.2005, 13:00
    #33050301
savosin_sergey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ODBC
2 sboyko: посмотри api-функцию SQLInstallDriverEx (odbccp32.dll)
...
Рейтинг: 0 / 0
05.05.2005, 15:02
    #33050737
alexis glinski
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ODBC
savosin_sergey2 sboyko: посмотри api-функцию SQLInstallDriverEx (odbccp32.dll)
хммм, зачем ??? тут более уместна SQLConfigDataSource ...
...
Рейтинг: 0 / 0
05.05.2005, 15:30
    #33050815
savosin_sergey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ODBC
2 alexis glinski: да! именно это я имел ввиду. пример из MSDN настроки (c++, немного переделанный):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
void Config_Sample(void)  {
  RETCODE retcode;
  int     subscrp;
  extern  HWND    hWnd;      /* Main window handle. */ 

  UCHAR szDriver[] = "Microsoft Access Driver (*.mdb)";
  UCHAR *szAttributes2=
     // Create a datasource for the first .mdb file created.
     "DSN=albacc\0FIL=MS Access\0JetIniPath=odbcddp.ini\0"
     "DBQ=c:\\odbcsdk\\smpldata\\access\\general.mdb\0"
     "DefaultDir=c:\\odbcsdk\\smpldata\\access\0\0"};

       retcode = SQLConfigDataSource(hWnd,
                                     ODBC_ADD_DSN,
                                     szDriver,
                                     szAttributes2);
       if (retcode != TRUE)
         handle_error(retcode);
     return;
   }
...
Рейтинг: 0 / 0
19.05.2005, 15:32
    #33074977
sboyko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ODBC
Местоположение драйвера ОДБС для Аксес не является инвариантом-т е зависит от местоположения папки Windows. Нужно делать прогр вызовы для определения этого местоположения.
...
Рейтинг: 0 / 0
20.05.2005, 06:09
    #33076042
Guest_2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ODBC
авторМестоположение драйвера ОДБС для Аксес не является инвариантом-т е зависит от местоположения папки Windows. Нужно делать прогр вызовы для определения этого местоположения.
Местоположение драйвера ODBC находится через реестр, а дальше никаких прооблем.
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / ODBC / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]