2015-11-21 2 views
0

Я новичок в powerbuilder. Я создаю приложение, и я хочу указать источник информации о подключении для окна входа только из inifile, чтобы другие способы были неактивными. Вот код, который генерируется автоматически с помощью мастера объекта соединения:получить информацию о подключении только от inifile

Choose Case is_connectfrom 

    Case IS_USE_INIFILE      /* Populate Database Connection from INI file */ 
     string ls_inifile = "C:\Users\3za\Documents\AA\pbtutor.ini" 

     as_dbms   = ProfileString (ls_inifile, "Database", "DBMS", "ODBC") 
     as_database  = ProfileString (ls_inifile, "Database", "Database", "") 
     as_userid  = ProfileString (ls_inifile, "Database", "UserID", "") 
     as_dbpass  = ProfileString (ls_inifile, "Database", "DBPass", "") 
     as_logid   = ProfileString (ls_inifile, "Database", "LogID", "") 
     as_logpass  = ProfileString (ls_inifile, "Database", "LogPassword", "") 
     as_server  = ProfileString (ls_inifile, "Database", "Servername", "") 
     as_dbparm  = ProfileString (ls_inifile, "Database", "DBParm", "ConnectString='DSN=EAS Demo DB V125;UID=dba;PWD=sql'") 
     as_lock   = ProfileString (ls_inifile, "Database", "Lock", "") 
     as_autocommit = ProfileString (ls_inifile, "Database", "AutoCommit", "false") 

    Case IS_USE_REGISTRY      /* Populate Database Connection from Registry */ 
     string ls_registrykey = "" + "\DataBase" 

     If RegistryGet (ls_registrykey, "DBMS",  RegString!, as_dbms) <> 1 Then 
      RegistrySet (ls_registrykey, "DBMS",  RegString!, "ODBC") 
      RegistryGet (ls_registrykey, "DBMS",  RegString!, as_dbms) 
     End If 
     If RegistryGet (ls_registrykey, "Database", RegString!, as_database) <> 1 Then 
      RegistrySet (ls_registrykey, "Database", RegString!, "") 
      RegistryGet (ls_registrykey, "Database", RegString!, as_database) 
     End If 
     If RegistryGet (ls_registrykey, "UserID",  RegString!, as_userid) <> 1 Then 
      RegistrySet (ls_registrykey, "UserID",   RegString!, "") 
      RegistryGet (ls_registrykey, "UserID",   RegString!, as_userid) 
     End If 
     If RegistryGet (ls_registrykey, "DBPass",  RegString!, as_dbpass) <> 1 Then 
      RegistrySet (ls_registrykey, "DBPass",   RegString!, "") 
      RegistryGet (ls_registrykey, "DBPass",   RegString!, as_dbpass) 
     End If 
     If RegistryGet (ls_registrykey, "LogID",  RegString!, as_logid) <> 1 Then 
      RegistrySet (ls_registrykey, "LogID",  RegString!, "") 
      RegistryGet (ls_registrykey, "LogID",  RegString!, as_logid) 
     End If 
     If RegistryGet (ls_registrykey, "LogPassword", RegString!, as_logpass) <> 1 Then 
      RegistrySet (ls_registrykey, "LogPassword", RegString!, "") 
      RegistryGet (ls_registrykey, "LogPassword", RegString!, as_logpass) 
     End If 
     If RegistryGet (ls_registrykey, "Servername", RegString!, as_server) <> 1 Then 
      RegistrySet (ls_registrykey, "Servername",  RegString!, "") 
      RegistryGet (ls_registrykey, "Servername",  RegString!, as_server) 
     End If 
     If RegistryGet (ls_registrykey, "DBParm",  RegString!, as_dbparm) <> 1 Then 
      RegistrySet (ls_registrykey, "DBParm",   RegString!, "ConnectString='DSN=EAS Demo DB V125;UID=dba;PWD=sql'") 
      RegistryGet (ls_registrykey, "DBParm",   RegString!, as_dbparm) 
     End If 
     If RegistryGet (ls_registrykey, "Lock",   RegString!, as_lock) <> 1 Then 
      RegistrySet (ls_registrykey, "Lock",   RegString!, "") 
      RegistryGet (ls_registrykey, "Lock",   RegString!, as_lock) 
     End If 
     If RegistryGet (ls_registrykey, "AutoCommit", RegString!, as_autocommit) <> 1 Then 
      RegistrySet (ls_registrykey, "AutoCommit",  RegString!, "false") 
      RegistryGet (ls_registrykey, "AutoCommit",  RegString!, as_autocommit) 
     End If 

    Case IS_USE_SCRIPT       /* Populate Database Connection from Script */ 
     as_dbms   = "ODBC" 
     as_database  = "" 
     as_userid  = "" 
     as_dbpass  = "" 
     as_logid   = "" 
     as_logpass  = "" 
     as_server  = "" 
     as_dbparm  = "ConnectString='DSN=EAS Demo DB V125;UID=dba;PWD=sql'" 
     as_lock   = "" 
     as_autocommit = "false" 


    Case Else 

     Return -1 

End Choose 

Return 1 

я пытаюсь сделать IS_USE_REGISTRY случая и IS_USE_SCRIPT случая как комментарии и код работает нормально, но до сих пор не может получить точку, как рабочий компилятор.

+0

Если вы хотите получить настройки только из ini-файла, вы можете вырезать код для других параметров. Но какова именно ваша проблема/вопрос? – Seki

+0

ОК, я понял, что с моим кодом проблем нет, сначала я подумал, что я должен отредактировать информацию о подключении только из-за нефина, а не из сценария powerbuilder – Azza

ответ

0

Просто замените ALL код выше этой:

string ls_inifile = "C:\Users\3za\Documents\AA\pbtutor.ini" 

    as_dbms   = ProfileString (ls_inifile, "Database", "DBMS", "ODBC") 
    as_database  = ProfileString (ls_inifile, "Database", "Database", "") 
    as_userid  = ProfileString (ls_inifile, "Database", "UserID", "") 
    as_dbpass  = ProfileString (ls_inifile, "Database", "DBPass", "") 
    as_logid   = ProfileString (ls_inifile, "Database", "LogID", "") 
    as_logpass  = ProfileString (ls_inifile, "Database", "LogPassword", "") 
    as_server  = ProfileString (ls_inifile, "Database", "Servername", "") 
    as_dbparm  = ProfileString (ls_inifile, "Database", "DBParm", "ConnectString='DSN=EAS Demo DB V125;UID=dba;PWD=sql'") 
    as_lock   = ProfileString (ls_inifile, "Database", "Lock", "") 
    as_autocommit = ProfileString (ls_inifile, "Database", "AutoCommit", "false") 

Это будет загружать из INI все время независимо от того, что. Он заполнит ваше окно входа в систему. Если вы хотите войти в систему автоматически из подключения в ini, вам придется пропустить вызов окна входа в систему и вручную закодировать команду connect using.