當前位置:首頁 » 編程語言 » c嵌入式sql編程
擴展閱讀
access資料庫學習心得 2022-08-11 09:42:05
sql大學英語 2022-08-11 09:40:22

c嵌入式sql編程

發布時間: 2022-08-07 01:28:52

㈠ 嵌入式sql語句怎麼才能在C語言運行,比如這個C程序,需要什麼頭文件之類的嗎

這種程序需要先使用資料庫編程軟體的編譯器編譯生成.c文件後,才可以再使用C編譯器對.c文件進行編譯。比如Oracle的ProC和informix的ESQL/C。

建議查看一下ProC和ESQL/C方面的資料。

㈡ 資料庫嵌入式sql編程,求解

題目沒有說明表之間的外鍵關系,那我就默認同名的列名是外鍵,不清楚你用的編程語言,所以我使用:input作為輸入變數
1
select Teacher.Tname,Teacher.Tage,Teacher.Tsex,Work.Salary from Teacher,Work,Department
where Teacher.Tno=Work.Tno and Department.Dno=Work.Dno
and Department.Tno=Teacher.Tno and Work.Salary>:input
2
update Work set Salary=:input from Teacher,Department
where Teacher.Tno=Work.Tno and Department.Dno=Work.Dno
and Department.Tno=Teacher.Tno and Work.Salary<:input

㈢ linux gcc mysql 如何在C語言中使用嵌入式SQL編程 要什麼頭文件如何編譯越詳細越好

最起碼包含mysql.h
實例代碼:
#include <stdlib.h>
#include <stdio.h>

#include "mysql.h"

int main(int argc, char *argv[]) {
MYSQL *conn_ptr;

conn_ptr = mysql_init(NULL);
if (!conn_ptr) {
fprintf(stderr, "mysql_init failed\n");
return EXIT_FAILURE;
}

conn_ptr = mysql_real_connect(conn_ptr, "localhost", "rick", "secret",
"foo", 0, NULL, 0);//連接資料庫

if (conn_ptr) {
printf("Connection success\n");
} else {
printf("Connection failed\n");
}

mysql_close(conn_ptr);

return EXIT_SUCCESS;
}
編譯:(假定上面文件取名 con.c,在當前目錄下)
gcc -I/usr/include/mysql con.c -L/usr/lib/mysql -lmysqlclient -o con

㈣ 嵌入式SQL怎麼實現

C++ 本來就不識別SQL,要在C++里對SQL類的資料庫進行操作的正確做法的原理是:
1、使用控制項,向SQL類伺服器(比如MS SQL Server或Oracle,或最簡單的ACCESS資料庫)發送SQL語句,SQL類伺服器響應後就會針對語句的要求進行返回數據集或結果,控制項可以收到結果,然後進行展現或處理。
2、一般最常見的是ADO Data類的控制項,比如C++Builder里的ADOQUERY,ADODataset。又比如VC里的ADO Data控制項,等等。
3、想具體的學習如何進行SQL資料庫編程,可自個網路關鍵詞:「SQL資料庫編程」,或「C++Builder SQL資料庫編程 」。

㈤ Visual C++ SQL嵌入式編程

以前我寫的時候遇到的問題搜到的資料 你看下有幫助不

MFC 連接SQL SERVER(ODBC方式)
1、建立資料庫

這一步比較簡單,直接打開SQL Server Management Studio,根據自己需要設計資料庫中的表,及其之間的依賴關系等等!要想設計一個完美的資料庫,就必須了解資料庫的基本知識。這里不再具體說了。這里我們假設我們的資料庫名字為Test01

2、配置數據源

資料庫設計建立完成後,它只是單獨的幾張表,我們並不能在程序中去訪問它,因為程序並不知道資料庫在哪裡。因此,就要在應用程序跟資料庫之間建立連接。

配置數據源說通俗了就是為資料庫創建一個對外的窗口,應用程序通過這個窗口來訪問資料庫中的數據。具體配置步驟為:

1) 打開 控制面板--〉管理工具--〉數據源,在用戶DSN面板選擇 「添加」

2) 在數據源驅動程序中選擇 「SQL Server」 --〉完成,即打開 「創建到SQL Server 的新數據源」

3) 在「數據源名稱」中填入名稱,我們填 TestSQL01,然後選擇 伺服器,在其中選擇要連接到的SQL Server伺服器。(如果你電腦的SQL Server服務打開的話,就會有自己的主機名。或者選擇網路上的某個SQL Server。

4) 點擊 下一步 配置認證信息

5) 配置完後點擊 下一步, 選中 「更改默認的資料庫為」復選框,在下拉中選擇自己剛才建立的要連接的資料庫。 (這一步很重要,一般一個Server上會有多個資料庫,如果不更改數據源的默認資料庫,你 建立的數據源將連接到默認的資料庫,這樣就會造成程序中執行SQL語句時「對象名無效」的錯誤,即找不到你指定的數據表等)

6) 選擇完資料庫後直接 下一步--〉完成 就完成了數據源的配置。接下來會出現配置數據源的基本信息,可以通過 「測試數據源」來測試數據源是否配置成功。

3、 資料庫的連接

建立完資料庫,又配置好了數據源,接下來就可以在程序中通過數據源來訪問資料庫了。

1) 首先要在程序中引入MFC ODBC資料庫的定義文件 #include <afxdb.h>

2) 定義CDataBase資料庫對象, CDataBase m_db;

3) 利用CDataBase類的OpenEx函數建立和資料庫的連接;

m_db.OpenEx(_T("DSN=TestSQL01;"),CDatabase::noOdbcDialog);

/*這里的TestSQL01 即為步驟2中建立的數據源,然後根據OpenEx函數格式填入參數,主要是用戶名、密碼之類,這里沒有設置,所以就沒有*/

具體連接還要捕捉OpenEx可能拋出的異常:

TRY
{
m_db.OpenEx(_T("DSN=TestSQL01;"),CDatabase::noOdbcDialog);
rs.m_pDatabase = &m_db;
}
CATCH(CDBException,ex)
{
AfxMessageBox(ex->m_strError);
AfxMessageBox(ex->m_strStateNativeOrigin);
}
AND_CATCH(CMemoryException,pEx)
{
pEx->ReportError();
AfxMessageBox(_T("memory exception"));
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox(szError);
}
END_CATCH

4、 資料庫操作

在完成了上面的步驟後,就可以使用SQL語句對資料庫進行操作了。基本的操作有 查詢、添加、修改、刪除等。這里主要說一下查詢,其他操作都與添加步驟類似。

1)查詢

查詢的基本步驟可以看下面的這段代碼:

CString sql = _T("SELECT Password FROM UserInfo WHERE (UserID = 123「) //要執行的SQL語句

CString psd; //存放查詢結果
TRY
{
rs.Open(AFX_DB_USE_DEFAULT_TYPE,sql); //打開查詢記錄
rs.GetFieldValue(_T("Password"),psd); //得到數據
}
CATCH(CDBException,ex)
{
AfxMessageBox(ex->m_strError);
AfxMessageBox(ex->m_strStateNativeOrigin);
}
AND_CATCH(CMemoryException,pEx)
{
pEx->ReportError();
AfxMessageBox(_T("memory exception"));
}
END_CATCH
2)插入

相對於查詢,插入、刪除、更改操作就簡單得多了。 CString sql = _T("USE Test01 INSERT UserInfo(UserID,UserName) VALUES(" 123, 'Bob');

try
...{
m_db.ExecuteSQL(sql);
}
..............

㈥ C語言db2嵌入式SQL編程,編譯問題 undefined reference to `sqlastrt'

1、要有類似的定義:
……
EXEC SQL INCLUDE SQLDA; /* or #include <sqlda.h> */
2、編譯環境要有db2的許可權和sqllib的路徑
3、我已經上傳了一份相關的文檔,預計明後天審核通過就可以看到了
《DB2開發基礎》
http://passport..com/?business&aid=6&un=chinacmouse#7

補充一個程序:
#include <time.h>
#include "stdio.h"

EXEC SQL INCLUDE SQLCA;

int main()
{
int i=0;
struct tm *pt;
time_t t1;
t1 = time(NULL);
pt = localtime(&t1);
printf("%4d%02d%02d", pt->tm_year+1900, pt->tm_mon+1, pt->tm_mday);
printf("%02d:%02d:%02d\n",pt->tm_hour,pt->tm_min,pt->tm_sec);

EXEC SQL CONNECT TO db;
i=0;
while (i<3000)
{
int j=0;
while (j<1000)
{
EXEC SQL update cc.fund set cc_code='095' where cc_no='0950031359';
j++;
}
i++;
}
EXEC SQL COMMIT;
t1 = time(NULL);
pt = localtime(&t1);
printf("%4d%02d%02d", pt->tm_year+1900, pt->tm_mon+1, pt->tm_mday);
printf("%02d:%02d:%02d\n",pt->tm_hour,pt->tm_min,pt->tm_sec);
EXEC SQL CONNECT RESET;
return 1;
}

編譯腳本
db2 prep testdb.sqc target cplusplus bindfile using testdb.bnd package using testdb
db2 bind testdb.bnd
db2 grant execute on package testdb to public
gcc -I/app/db2inst1/sqllib/include -I./ -c -g testdb.C
gcc -L/app/db2inst1/sqllib/lib -ldb2 -L/usr/lib -lm -o testdb testdb.o

㈦ 如何用C實現對SQL資料庫的操作

連接到SAMPLE資料庫,查詢LASTNAME為JOHNSON的FIRSTNAME信息。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "util.h"
#include <sqlca.h>``
EXEC SQL INCLUDE SQLCA;

main()
{
EXEC SQL BEGIN DECLARE SECTION;

char firstname[13];
char userid[9];
char passwd[19];
EXEC SQL END DECLARE SECTION;
EXEC SQL CONNECT TO sample;

EXEC SQL SELECT FIRSTNME INTO :firstname

FROM employee
WHERE LASTNAME = 'JOHNSON';
printf( "First name = %s\n", firstname );
EXEC SQL CONNECT RESET;
return 0;
}
上面是一個簡單的靜態嵌入SQL語句的應用程序。它包括了嵌入SQL的主要部分:
(1)中的include SQLCA語句定義並描述了SQLCA的結構。SQLCA用於應用程序和資料庫之間的通訊,其中的SQLCODE返回SQL語句執行後的結果狀態。
(2)在BEGIN DECLARE SECTION和END DECLARE SECTION之間定義了宿主變數。宿主變數可被SQL語句引用,也可以被C語言語句引用。它用於將程序中的數據通過SQL語句傳給資料庫管理器,或從資料庫管理器接收查詢的結果。在SQL語句中,主變數前均有「:」標志以示區別。
(3)在每次訪問資料庫之前必須做CONNECT操作,以連接到某一個資料庫上。這時,應該保證資料庫實例已經啟動。
(4)是一條選擇語句。它將表employee中的LASTNAME為「JOHNSON」的行數據的FIRSTNAME查出,並將它放在firstname變數中。該語句返回一個結果。可以通過游標返回多個結果。當然,也可以包含update、insert和delete語句。
(5)最後斷開資料庫的連接。
從上例看出,每條嵌入式SQL語句都用EXEC SQL開始,表明它是一條SQL語句。這也是告訴預編譯器在EXEC SQL和「;」之間是嵌入SQL語句。如果一條嵌入式SQL語句佔用多行,在C程序中可以用續行符「\」。

㈧ C語言中使用嵌入式sql

嵌入式SQL程序的VC+SQL server 2000實現的環境配置

嵌入SQL的C應用程序具體到VC++6.0, SQL Server2000 下調試可分為五步:1、環境初始化;2、預編譯;3、編譯;4、連接;5、運行。下面就其中重要的的操作方法給以詳細說明。
1、環境初始化
(1) SQL Server2000為其嵌入式SQL提供了一此特殊的介面;默認的安裝方式沒有安裝這此介面;因此,需要把devtools.rar解壓到SQLServer的系統日錄下(即文件夾devtools中的所有文件);如果操作系統安裝在C盤,則SQL Server的系統目錄是C:\Program Files\Microsoft SQL Server。(或 在安裝Microsoft SQL Server 2000時選擇安裝Development Tools,為使用嵌入式SQL語言准備必要的頭文件和庫文件。)
( 2)初始化Visual C++ 6.0編譯器環境。在命令行方式下運行文件\Microsoft Visual Studio\VC98\Bin\vcvars32.bat。
(3)初始化SQL Server的預編譯環境。在命令行方式下運行文件:\Devtools\samples\esqlc\setenv.bat。
( 4) VC++6.0環境配置。具體配置分為如下三步[:
①Tools->options->directories->Include Files:添加 C:\Program Files\Microsoft SQL Server\devtools\include。將SQL server自帶的用於資料庫開發的頭文件包含到工程環境中。
②Tools->options->directories->Lib Files:添加C:\Program Files\Microsoft SQL Server\devtools\x861ib。將開發用到的包包含到工程中。
③project->Settings->Link->Object/Library Moles,添加庫文件:SQLakw32.lib, Caw32.lib。這兩個文件之間用空格分開。

2、預編譯
C語言編譯程序不能識別應用程序中的SQL語句,需要經過預處理程序將其轉換成C語句。SQL Server的預處理程序是nsqlprep.exe。 nsqlprep.exe在SQL Server安裝日錄的MSSQL\Binn下。若SQL Server資料庫採用的是默任安裝方式,則需要把binn.rar的內容拷貝到指定目錄下。

Microsoft SQL Server 2000提供的預編譯程序nsqlprep.exe,用於對嵌入式SQL程序進行預編譯處理,生成C語言源程序.實際上就是將嵌入式SQL程序中的嵌入式SQL語句替換為對運行時庫文件Sqlakw32. dll的函數調用,接著運行時庫文件調用動態連接庫Ntwdblib. dll通過網路來存取Microsoft SQL Server 2000資料庫伺服器.
預編譯程序nsqlprep的常用語法為:
nsqlprep ESQL_File /SQLACCESS /DB server_name.database_name /PASS login.password
其中ESQL_File是要預編譯的嵌入式SQL程序;/SQLACCESS通知nsqlprep自動地為嵌入式SQL程序中的靜態SQL語句創建相應的存儲過程;/DB server_name.database_name指明要連接的伺服器以及資料庫名稱;/PASS login.password給出登錄名及相應的口令.

下面的程序demo.sqc實現了從資料庫伺服器hushaobo的資料庫pubs中的authors表中讀取au_lname為white的人對應的 au_fname 值,並保存到變數first_name 中顯示出來。(連接資料庫的用戶為sa,對應密碼為1982)

#include<stdio.h>
void main()
{
EXEC SQL BEGIN DECLARE SECTION;
char first_name[40];
char last_name[]="White";
EXEC SQL END DECLARE SECTION;
EXEC SQL CONNECT TO hushaobo.pubs
USER sa.1982;
EXEC SQL SELECT au_fname INTO :first_name from authors WHERE au_lname = :last_name;
EXEC SQL DISCONNECT ALL;
printf("first name: %s \n",first_name);
}

在命令行下運行:nsqlprep demo.sqc /SQLACCESS /DB hushaobo.pubs /PASS sa.1982
則生成demo.c,將該文件添加到VC工程中編譯即可。

3、編譯,連接與運行
在VC++6.0中創建一個 "WIN32 Console Application"的Proiect,然後將預編譯生成的c文件加入Proiect,編譯連接即可生成訪問SQL Server的可執行程序。 Visual C++ 6.0進行編譯連接時需要用到動態鏈接庫SQLakw32.d11與SQLaiw32.d11;盡管這兩個文件已經隨同binn.rar被拷貝到SQLServer安裝目錄的MSSQL\Binn文件夾下,但仍然需要把它們的路徑加到系統路徑變數中,以使得程序運行時能找到它們,具體添加方法如下:
方法1:把這兩個文件拷貝到操作系統目錄下的system32子目錄中。
方法2:我的電腦->屬性->高級->環境變數->path->編輯,在變數值中加入路徑值;新路徑與已有路徑間用;間隔。

注意調適程序時,文件名中不要包含cursor,否則可能會出錯。

㈨ 什麼是嵌入式sql應用程序

嵌入式SQL
語言是將
SQL語句
直接嵌入到程序的源代碼中,與其他
程序設計語言
語句混合.
嵌入式SQL的用途:它是資料庫應用程序的一種開發方法.是一種應用程序進行資料庫訪問時所採取的編程式
資料庫語言
.

㈩ 關於嵌入式SQL(初學)

你需要學的不是從資料庫的書中找
而是從c c++ 的函數庫或類庫中找執行sql功能的函數或類

比如說vc
中的
#include <sql.h>
#include <sqlext.h>
就是用來進行odbc資料庫操作的
你去查看相關的msdn幫助就行了