السبت، 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

الاثنين، 29 أكتوبر 2012

مشكله عند فتح Datawindow البرنامج يغلق



واجهتني مشكله عند فتح datawindow  يقوم البرنامج  PowerBuilder  بالاغلاق مباشره .

عند فتح اي شيء اخر لا يوجد مشاكل .


سبب المشكلة  ؟  ؟  ؟   . . .
ممكن عند تحديث النسخة من الاصدار 1.5 الى الاصدار 1.51  او سبب اخر تكريك النسخه ثم عمل تحديث لها . . .


الحل . . . .

تأكد اولا من اغلاق البرنامج ثم من RegEdit
قم بحذف Datawindow Key


HKEY_CURRENT_USER\Software\Sybase\PowerBuilder\11.5\Layout\Default



ملاحظة : هذا الحل مجرب على windows 7 - 64 bit

الأربعاء، 3 أكتوبر 2012

Installing Sybase IQ for the first time



لتنزيل Sybase IQ  لا تحتاج الى الكثير من المهارات  فقط للعلم ستجد IQ  تحت الكثير من الابواب في موقع sybase

 1. Data Warehousing DWH

2. Business Intelligence & Analytics 

3. Financial Services Solution  

 بعد الانتهاء من التنزيل  ننتقل الى الخطوات التاليه 












 







 

 

 

 

 

الثلاثاء، 2 أكتوبر 2012

Reverse Engineer الهندسة العكسية

هذه المقالة متخصصه في علم هندسة البرمجيات 

الهندسة العكسيه من PowerDesinger من اقوى الادوات التي تستخدم في عمل مهندسي البرمجيات . بحيث نستطيع الحصول على  الـ Class الموجوده او حتى على ER Diagram   الموجود .




كيفية عمل هذه الاداة في PowerDesingner  ؟ ؟ ؟ ! ! !



اذن نختار من File  >> Reverse Engineer  ثم نختار  Database
من database  نحدد  نوع  قواعد البيانات ، علما ان بورديزاينر متوافق مع الكثير من قواعد البيانات مثل oracle  ، Sql Server  وايضا الكثير  .  نختار مثلا Oracle 9i



ثم نختار نوع الاتصال بقواعد البيانات ( odbc ، jdbc  ، Direct conn  ) ثم نقوم باختيار ما نريد من جداول او جداول عرض و مستخدمين .


 تم اخيار المستخدم HR  او بما يعرف Schema  وقمت باختيار جميع الجداول  ثم OK
 

نلاحظ هنا ( ER Diagram )



نستطيع تحول هذا المخطط الى عده انواع

 

 

 

 

صراحة  :  ابداع . . . . .

الاثنين، 1 أكتوبر 2012

Sybase IQ بالعربي






Sybase IQ  


 بشكل عام  هي قواعد بيانات تماما كما هي Oracle  او Sql Server  او  حتى  MySQL  . بمعنى اخر هي Relational Database system  ( قواعد بيانات علائقيه " من علاقات" )  تستخدم لغة  SQL  و تستطيع الوصول لها عن طريق Odbc  مثلا .

ما هو الفرق بين IQ  وباقي قواعد البيانات  ؟ ؟

قواعد البيانات العلائقيه ( RDBMS ) تستخدم الجدوال ( Tables ) لحفظ البيانات و لهذه الجدوال خصائص  تعرف بالاعمدة ( Columns ) ويتم حفظ البيانات على شكل صفوف ( Rows ). بينما في  IQ   يتم حفظ البيانات على شكل اعمده وليس صفوف .

مره اخرى ما هي Sybase IQ  ؟؟ 

قواعد بيانات تستخدم الاعمده و ليس الصفوف لحفظ البيانات بداخلها  وهي تستخدم في ذكاء الاعمال BI  ( الاستفاده القصوى من البيانات لأتخاذ القرار ) و Data WareHouse  ولها استخدامات في مجال تحليل البيانات  

ميزاتها ؟ ؟ ؟   

1. السرعة  التي  تعددت الـ 10 اضعاف الى 100 ضعف  عن مثيلاتها من قواعد البيانات التي تستخدم ترانزاكشن .
2. التقارير المعقده  و الكبيره جدا   (  Heavy Ad hoc Query )
3. عدد كبير من المستخدمين في نفس الوقت
4. مساحة اقل لحفظ البيانات ( استخدام طرق لحفظ البيانات مما قلل المساحة اللازمة لهذه المهمه )

من هي الشركات المهتمة في هذا النوع من قواعد البيانات . 

البنوك ، المؤسسات الكبرى ، الحكومات . . . . . .

 هل تعلم ؟ ؟

هل تعلم ان Sybase IQ   دخلت موسوعه جينيس ( خبرقديم من سنة 2008 ) كأكبر مخزن بيانات على مستوى العالم  1000 terabytes  بحيث ان حجم البيانات الموجوده تجاوز 6 ترليون  صف و  اكثر من 185 مليون  ملف ( بريد الكتروني ، ميديا ،اكسل ، ورد ، فيديو )


 Sybase and Sun Set Guinness World Record for World's Largest Data Warehouse

 ملاحظة مهمة جدا . . .

بالرغم ان Sybase IQ  تختلف تماما عن قواعد البيانات الاخرى من حيث البناء والتركيب من الداخل الا انك لن تلاحظ الفرق بينها وبين اي من قواعد البيانات الاخرى ( انشاء جداول ، حفظ البيانات ، SQL Statement ، الخ . . . ) . . . . 



سؤال  يحتاج الى بناء استعلام ؟؟ 

 

كم عدد الاشخاص الذكور، الذين يحملون الجنسيه الهولنديه ، التي تنحصر اعمارهم بين السن 25 و 27  ، الذين دخلو الى دوله الامارات العربية المتحده من مطار ابوظبي بفيزا نوع زيارة وما زالو داخل الامارات و قاربت الفيزا على الانتهاء .