السبت، 1 ديسمبر 2012

Embedded sql anywhere with powerbuilder

كيفية ربط قواعد البيانات SQL AnyWhere  مع PowerBuilder  من دون الحاجة الى  ODBC   .

قمت بنسخ الكود و تجريبه على PowerBuilder 11.5  و SQL Anywhere 11 .

رابط الكود . http://sqlanywhere-forum.sybase.com/questions/12671/connecting-to-a-db-file-from-powerbuilder



الهدف من هذا الكود ربط البرنامج مباشرة ،  للبرامج التي تكون مستخدم واحد  Single User  او للعروض التروجيه  Demo Software  .




 
 
 

// ---------------------------------------------------------------------------

// Auto-start local database with auto-stop enabled.

gtr_local = CREATE u_tr_sqlca

gtr_local.DBMS = 'ODB'

gtr_local.DBParm &
    = "ConnectString='Driver=SQL Anywhere 12;" &
    + "UID=dba;PWD=sql;" &
    + "START=C:\Program Files\SQL Anywhere 12\Bin64\dbeng12.exe -o C:\data\dbeng12_log_local.txt -os 10M -x none -zl -zp -zt;" &
    + "DBF=C:\data\local.db'," &
    + "ConnectOption='SQL_DRIVER_CONNECT,SQL_DRIVER_NOPROMPT'"

CONNECT USING gtr_local;

IF gtr_local.SQLCODE <> 0 THEN
    MessageBox ( 'Error', 'CONNECT USING gtr_local failed:' &
        + '~r~nSQLCode = ' &
        + String ( gtr_local.SQLCode ) &
        + '~r~nSQLDBCode = ' &
        + String ( gtr_local.SQLDBCode ) &
        + '~r~n' &
        + gtr_local.SQLErrText )
    RETURN
END IF

MessageBox ( 'OK', 'CONNECT USING gtr_local OK.' )

// ---------------------------------------------------------------------------

// Connect to network database.

gtr_network = CREATE u_tr_sqlca

gtr_network.DBMS = 'ODB'

gtr_network.DBParm &
    = "ConnectString='Driver=SQL Anywhere 12;" &
    + "UID=dba;PWD=sql;DBN=network;SERVER=network'," &
    + "ConnectOption='SQL_DRIVER_CONNECT,SQL_DRIVER_NOPROMPT'"

CONNECT USING gtr_network;

IF gtr_network.SQLCODE <> 0 THEN
    MessageBox ( 'Error', 'CONNECT USING gtr_network failed:' &
        + '~r~nSQLCode = ' &
        + String ( gtr_network.SQLCode ) &
        + '~r~nSQLDBCode = ' &
        + String ( gtr_network.SQLDBCode ) &
        + '~r~n' &
        + gtr_network.SQLErrText )
    RETURN
END IF

MessageBox ( 'OK', 'CONNECT USING gtr_network OK.' )

// ---------------------------------------------------------------------------

SQLCA.DBMS = 'ODB'

SQLCA.DBParm &
    = "ConnectString='Driver=SQL Anywhere 11;" &
    + "UID=dba;PWD=sql;" &
    + "START=C:\Program Files\SQL Anywhere 11\bin32\dbeng11.exe;" &
    + "ASTOP=NO;" &
    + "DBF=C:\projects\$SA_templates\ddd11.db;" &
    + "ENG=ddd11;" &
    + "DBN=ddd11;'," &
    + "ConnectOption='SQL_DRIVER_CONNECT,SQL_DRIVER_NOPROMPT'"

CONNECT USING SQLCA;

IF SQLCA.SQLCODE <> 0 THEN
    MessageBox ( 'Error', &
        'CONNECT 1 failed in open:' &
        + '~r~nSQLCode = ' &
        + String ( SQLCA.SQLCode ) &
        + '~r~nSQLDBCode = ' &
        + String ( SQLCA.SQLDBCode ) &
        + '~r~n' &
        + SQLCA.SQLErrText )
    RETURN
END IF

MessageBox ( 'CONNECT 1', 'OK' );

DISCONNECT USING SQLCA;

// ---------------------------------------------------------------------------

SQLCA.DBMS = 'ODB'

SQLCA.DBParm &
    = "ConnectString='Driver=SQL Anywhere 11;" &
    + "UID=dba;PWD=sql;" &
    + "ENG=ddd11;" &
    + "DBN=ddd11;'," &
    + "ConnectOption='SQL_DRIVER_CONNECT,SQL_DRIVER_NOPROMPT'"

CONNECT USING SQLCA;

IF SQLCA.SQLCODE <> 0 THEN
    MessageBox ( 'Error', &
        'CONNECT 2 failed in open:' &
        + '~r~nSQLCode = ' &
        + String ( SQLCA.SQLCode ) &
        + '~r~nSQLDBCode = ' &
        + String ( SQLCA.SQLDBCode ) &
        + '~r~n' &
        + SQLCA.SQLErrText )
    RETURN
END IF

MessageBox ( 'CONNECT 2', 'OK' );

// ---------------------------------------------------------------------------

SQLCA.DBMS = 'ODB'

SQLCA.DBParm &
    = "ConnectString='Driver=SQL Anywhere 11;" &
    + "UID=dba;PWD=sql;DatabaseName=ruralfinds_local;EngineName=ruralfinds_local'," &
    + "ConnectOption='SQL_DRIVER_CONNECT,SQL_DRIVER_NOPROMPT'"

CONNECT USING SQLCA;

IF SQLCA.SQLCODE <> 0 THEN
    MessageBox ( 'Error', &
        'CONNECT failed in open:' &
        + '~r~nSQLCode = ' &
        + String ( SQLCA.SQLCode ) &
        + '~r~nSQLDBCode = ' &
        + String ( SQLCA.SQLDBCode ) &
        + '~r~n' &
        + SQLCA.SQLErrText )
    RETURN
END IF

MessageBox ( 'CONNECT', 'OK' );

// ---------------------------------------------------------------------------

SQLCA.DBMS = 'ODBC'

SQLCA.DBParm &
    = "ConnectString='Driver=Adaptive Server Anywhere 9.0;" &
    + "UID=dba;PWD=sql;DatabaseName=asademo;EngineName=asademo9;" &
    + "AutoStop=No;Integrated=No;" &
    + "CommLinks=SharedMemory,TCPIP{HOST=tsunami;DOBROAD=NONE};" &
    + "Compress=No',ConnectOption='SQL_DRIVER_CONNECT,SQL_DRIVER_NOPROMPT'"

CONNECT USING SQLCA;

IF SQLCA.SQLCODE <> 0 THEN
    MessageBox ( 'Error', &
        'CONNECT failed in open:' &
        + '~r~nSQLCode = ' &
        + String ( SQLCA.SQLCode ) &
        + '~r~nSQLDBCode = ' &
        + String ( SQLCA.SQLDBCode ) &
        + '~r~n' &
        + SQLCA.SQLErrText )
    RETURN
END IF

// ---------------------------------------------------------------------------

SQLCA.DBMS = 'ODB'

SQLCA.DBParm &
    = "ConnectString='Driver=Adaptive Server Anywhere 8.0;" &
    + "UID=DBA;PWD=SQL;" &
    + "START=C:\Program Files\Sybase\SQL Anywhere 8\win32\dbeng8.exe;" &
    + "DBF=" &
    + aaa &
    + "'"

CONNECT USING SQLCA;

IF SQLCA.SQLCODE <> 0 THEN
    MessageBox ( 'Error', &
        'CONNECT failed in bbb:' &
        + '~r~nSQLCode = ' &
        + String ( SQLCA.SQLCode ) &
        + '~r~nSQLDBCode = ' &
        + String ( SQLCA.SQLDBCode ) &
        + '~r~n' &
        + SQLCA.SQLErrText )
    RETURN
END IF

// ---------------------------------------------------------------------------

itr_sqlca = CREATE u_tr_sqlca

itr_sqlca.DBMS = 'ODB'

itr_sqlca.DBParm &
    = "ConnectString='Driver=Adaptive Server Anywhere 8.0;" &
    + "UID=DBA;PWD=SQL;" &
    + "START=C:\Program Files\Sybase\SQL Anywhere 8\win32\dbeng8.exe;" &
    + "DBF=" &
    + is_filespec &
    + "'"

CONNECT USING itr_sqlca;

IF itr_sqlca.SQLCODE <> 0 THEN
    MessageBox ( 'Error', 'CONNECT failed in ue_post_open:' &
        + '~r~nSQLCode = ' &
        + String ( itr_sqlca.SQLCode ) &
        + '~r~nSQLDBCode = ' &
        + String ( itr_sqlca.SQLDBCode ) &
        + '~r~n' &
        + itr_sqlca.SQLErrText )
    RETURN
END IF

هناك تعليقان (2):