Sybase ASE15.0.2中使用嵌入式SQL/C程式設計
使用C介面訪問Sybase ASE,有多種方式。見到itpub論壇上有人問起,索性做一個簡單的demo。發現,使用SQL/C比Open Client介面更直觀,比較適合喜歡偷懶的coder.下邊介紹詳細過程.
1. 資料庫環境
資料庫iihero, 有使用者spring/spring1, 使用sa使用者登入,執行如下指令碼(test_proc.sql),目的是建立一個示例表及資料,併為它建立一個儲存過程,給後邊的程式用.
最後它有一段驗證過程.結果顯然是3了.
2. 看我們的程式.
就是通過嵌入式SQL訪問這個儲存過程test_proc,並返回結果(example.cp), 內容如下:
3. 編譯和連結
Sybase ASE中的SQL/C程式設計,需要進行預編譯,編譯,連結三個步驟.
首先要從命令列裡進入vc6的dos環境, 就是進入控制檯視窗,執行VC98/bin下邊的VCVARS32.bat檔案.
確保你的LIB變數有%SYBASE%/%SYBASE_OCS%/lib這個路徑.
a. 預編譯: (預編譯命令是cpre)
E:/MyDocument/MYBOOKS/ASE/code/esqlc>cpre -CMSVC -m -O example.c example.cp
Precompilation Successful. No Errors or Warnings found.
Statistical Report:
Program name: cpre
Options specified: /m
Input file name: example.cp
Listing file name:
Target file name: example.c
ISQL file name:
Tag ID specified:
Compiler used: MSVC
Open Client version: CS_VERSION_150
Number of information messages: 11
Number of warning messages: 0
Number of error messages: 0
Number of SQL statements parsed: 11
Number of host variables declared: 6
Number of SQL cursors declared: 0
Number of dynamic SQL statements: 0
Number of stored Procedures generated: 1
Connection(s) information:
User id:
Server:
Database:
b. 編譯: (它還需要%SYBASE%/%SYBASE_OCS%/include/sybesql.c編譯成obj檔案)
因此使用如下命令,編譯兩個.c檔案:
E:/MyDocument/MYBOOKS/ASE/code/esqlc>cl /DDEBUG=1 /D_DEBUG=1 /DNET_DEBUG=1 /Od /
Z7 /MD /nologo /DWIN32 -Id:/sybase/OCS-15_0/include d:/sybase/OCS-15_0/include/s
ybesql.c example.c /c
sybesql.c
example.c
Generating Code...
c. 連結:
E:/MyDocument/MYBOOKS/ASE/code/esqlc>link example.obj sybesql.obj /out:example.e
xe libsybct.lib libsybcs.lib MSVCRT.lib
Microsoft (R) Incremental Linker Version 6.00.8447
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
3. 最後結果:
E:/MyDocument/MYBOOKS/ASE/code/esqlc>example.exe
Begin test!
num_t123=3
End test!
上述過程只是簡單的演示一下一個簡單的儲存過程在SYBASE ESQL/C中的使用. 有興趣可以一試.
至於編譯器,VC6, VC7/8/9,都應該支援.
之所以使用命令列,是因為不想依賴於整合開發環境.
相關文章
- 嵌入式系統的C程式設計pdfC程式程式設計
- 程式設計競賽中 C/C++ I/O 的使用程式設計C++
- SYBASE程式設計中的莫名錯誤及其解決辦法 (轉)程式設計
- 解決Sybase ASE中的dbisql (interactive sql)和Sybase SQL Anywhere中的dbisql相互打架問題SQL
- [嵌入式]Cortex-A8處理器程式設計(中)程式設計
- C#~非同步程式設計在專案中的使用C#非同步程式設計
- 【Java程式設計】使用Java模擬C/C++中的queue佇列Java程式設計C++佇列
- 嵌入式程式設計學習(1)程式設計
- union 的概念及在嵌入式程式設計中的應用程式設計
- 嵌入式系統程式設計基礎程式設計
- XCode 中 Swift / Objective-C / C / C++ 混合程式設計XCodeSwiftObjectC++程式設計
- 【嵌入式c++】設計模式之策略模式(Strategy)C++設計模式
- 程式設計中快取的使用程式設計快取
- UE4中C++程式設計(一)C++程式設計
- C++中智慧指標的設計和使用C++指標
- C#並行程式設計:Parallel的使用C#並行行程程式設計Parallel
- 詳解 state 狀態模式及在 C++ 設計模式程式設計中的使用例項C++設計模式程式設計
- OC/Swift/C/C++混合使用的程式設計姿勢SwiftC++程式設計
- 嵌入式開發程式碼中的extern "C" {的作用
- 嵌入式Linux—Framebuffer應用程式設計Linux程式設計
- 嵌入式作業6.2 ADC 程式設計程式設計
- C++程式設計C++程式設計
- c#程式設計C#程式設計
- C程式設計題C程式程式設計
- 好書推薦—《精通Oracle Database 12c SQL&PL/SQL程式設計》OracleDatabaseSQL程式設計
- PL/SQL程式設計(1)SQL程式設計
- T-sql程式設計SQL程式設計
- 程式設計中暫存器的使用程式設計
- 程式設計技巧之嵌入式C語言完全學習筆記及案例[圖]程式設計C語言筆記
- Windows 程式設計簡介從C/C++到Windows程式設計Windows程式設計C++
- 在C++Builder 5中使用ADO資料庫程式設計 (轉)C++UI資料庫程式設計
- 嵌入式軟體架構設計-程式分層架構
- 嵌入式作業5.1 定時器程式設計定時器程式設計
- sybase終於支援SQL UDFs了SQL
- 牛奶咖啡好伴侶——《C程式設計伴侶》對《C程式設計》C程式程式設計
- linux下c程式設計中的DOS攻擊程式(轉)LinuxC程式程式設計
- Sybase及SQL Anywhere SQL語句小結(轉)SQL
- 程式設計中的遞迴(C語言為例)程式設計遞迴C語言