當前位置:首頁 » 操作系統 » c資料庫工廠

c資料庫工廠

發布時間: 2022-06-06 04:12:00

c語言操作資料庫

都是可以的

C/C++與資料庫交互,像 mssql / mysql / oracle 等,一般都有成熟的第三方庫,這些庫裡面無非就是封裝了與資料庫通訊的方式和通訊協議
搜一下你要用的資料庫相關的 API 文檔,會說得很清楚

任何文件都是二進制數據,關鍵是數據存儲的組織方式
通用擴展名的文件,像gif/doc/jpg/wav,格式都是固定的
讀出數據來以後按照一定的規律去解析就能可以正確解讀
這個規律,就是文件存儲格式,也可以搜到相關的文檔

⑵ C# 工廠模式獲得資料庫連接 簡單的例子

工廠模式不是解決你所說問題的。
你只要把new SqlConnect的過程寫成一個靜態方法,在你想實例化sqlConnection的時候直接調用你寫的方法就好了。
想學模式推薦你本書:大話設計模式

⑶ 用c語言怎麼連接資料庫呢

25.2.2. C API函數概述
這里歸納了C API可使用的函數,並在下一節詳細介紹了它們。請參見25.2.3節,「C API函數描述」。

函數
描述

mysql_affected_rows()
返回上次UPDATE、DELETE或INSERT查詢更改/刪除/插入的行數。

mysql_autocommit()
切換 autocommit模式,ON/OFF

mysql_change_user()
更改打開連接上的用戶和資料庫。

mysql_charset_name()
返回用於連接的默認字元集的名稱。

mysql_close()
關閉伺服器連接。

mysql_commit()
提交事務。

mysql_connect()
連接到MySQL伺服器。該函數已不再被重視,使用mysql_real_connect()取代。

mysql_create_db()
創建資料庫。該函數已不再被重視,使用SQL語句CREATE DATABASE取而代之。

mysql_data_seek()
在查詢結果集中查找屬性行編號。

mysql_debug()
用給定的字元串執行DBUG_PUSH。

mysql_drop_db()
撤銷資料庫。該函數已不再被重視,使用SQL語句DROP DATABASE取而代之。

mysql_mp_debug_info()
讓伺服器將調試信息寫入日誌。

mysql_eof()
確定是否讀取了結果集的最後一行。該函數已不再被重視,可以使用mysql_errno()或mysql_error()取而代之。

mysql_errno()
返回上次調用的MySQL函數的錯誤編號。

mysql_error()
返回上次調用的MySQL函數的錯誤消息。

mysql_escape_string()
為了用在SQL語句中,對特殊字元進行轉義處理。

mysql_fetch_field()
返回下一個表欄位的類型。

mysql_fetch_field_direct()
給定欄位編號,返回表欄位的類型。

mysql_fetch_fields()
返回所有欄位結構的數組。

mysql_fetch_lengths()
返回當前行中所有列的長度。

mysql_fetch_row()
從結果集中獲取下一行

mysql_field_seek()
將列游標置於指定的列。

mysql_field_count()
返回上次執行語句的結果列的數目。

mysql_field_tell()
返回上次mysql_fetch_field()所使用欄位游標的位置。

mysql_free_result()
釋放結果集使用的內存。

mysql_get_client_info()
以字元串形式返回客戶端版本信息。

mysql_get_client_version()
以整數形式返回客戶端版本信息。

mysql_get_host_info()
返回描述連接的字元串。

mysql_get_server_version()
以整數形式返回伺服器的版本號。

mysql_get_proto_info()
返回連接所使用的協議版本。

mysql_get_server_info()
返回伺服器的版本號。

mysql_info()
返回關於最近所執行查詢的信息。

mysql_init()
獲取或初始化MYSQL結構。

mysql_insert_id()
返回上一個查詢為AUTO_INCREMENT列生成的ID。

mysql_kill()
殺死給定的線程。

mysql_library_end()
最終確定MySQL C API庫。

mysql_library_init()
初始化MySQL C API庫。

mysql_list_dbs()
返回與簡單正則表達式匹配的資料庫名稱。

mysql_list_fields()
返回與簡單正則表達式匹配的欄位名稱。

mysql_list_processes()
返回當前伺服器線程的列表。

mysql_list_tables()
返回與簡單正則表達式匹配的表名。

mysql_more_results()
檢查是否還存在其他結果。

mysql_next_result()
在多語句執行過程中返回/初始化下一個結果。

mysql_num_fields()
返回結果集中的列數。

mysql_num_rows()
返回結果集中的行數。

mysql_options()
為mysql_connect()設置連接選項。

mysql_ping()
檢查與伺服器的連接是否工作,如有必要重新連接。

mysql_query()
執行指定為「以Null終結的字元串」的SQL查詢。

mysql_real_connect()
連接到MySQL伺服器。

mysql_real_escape_string()
考慮到連接的當前字元集,為了在SQL語句中使用,對字元串中的特殊字元進行轉義處理。

mysql_real_query()
執行指定為計數字元串的SQL查詢。

mysql_refresh()
刷新或復位表和高速緩沖。

mysql_reload()
通知伺服器再次載入授權表。

mysql_rollback()
回滾事務。

mysql_row_seek()
使用從mysql_row_tell()返回的值,查找結果集中的行偏移。

mysql_row_tell()
返回行游標位置。

mysql_select_db()
選擇資料庫。

mysql_server_end()
最終確定嵌入式伺服器庫。

mysql_server_init()
初始化嵌入式伺服器庫。

mysql_set_server_option()
為連接設置選項(如多語句)。

mysql_sqlstate()
返回關於上一個錯誤的SQLSTATE錯誤代碼。

mysql_shutdown()
關閉資料庫伺服器。

mysql_stat()
以字元串形式返回伺服器狀態。

mysql_store_result()
檢索完整的結果集至客戶端。

mysql_thread_id()
返回當前線程ID。

mysql_thread_safe()
如果客戶端已編譯為線程安全的,返回1。

mysql_use_result()
初始化逐行的結果集檢索。

mysql_warning_count()
返回上一個SQL語句的告警數。 詳見:http://dev.mysql.com/doc/refman/5.1/zh/apis.html#c-api-function-overview
http://dev.mysql.com/doc/refman/5.0/en/c.html

⑷ C語言,資料庫

嵌入SQL的基本特點是:
1、每條嵌入式SQL語句都用EXEC SQL開始,表明它是一條SQL語句。這也是告訴預編譯器在EXEC SQL和「;」之間是嵌入SQL語句。
2、如果一條嵌入式SQL語句佔用多行,在C程序中可以用續行符「\」,在Fortran中必須有續行符。其他語言也有相應規定。
3、每一條嵌入SQL語句都有結束符號,如:在C中是「;」。
4、嵌入SQL語句的關鍵字不區分大小寫。
5、可以使用「/*….*/」來添加註釋。

從上面這個例子看出,INFORMIX資料庫的嵌入SQL語句的格式同其他資料庫基本相同。但是,它也有它自己本身的一些特點。本節把重點放在INFORMIX資料庫所獨有的一些語句或處理方式。
5.2 宿主變數
宿主變數就是在嵌入式SQL語句中引用主語言說明的程序變數。如:
EXEC SQL connect to :hostvar;
1)、定義宿主變數
方法1:採用BEGIN DECLARE SECTION 和END DECLARE SECTION之間給主變數說明。如:
EXEC SQL BEGIN DECLARE SECTION;
char fname[ FNAME_LEN + 1 ];
char lname[ LNAME_LEN + 1 ];
EXEC SQL END DECLARE SECTION;
方法2:在每個變數的數據類型前加上「$」。如:
$int hostint;
$double hostdbl;
ESQL/C對宿主變數的大小寫敏感。但是,ESQL/C的關鍵字、語句標志符、游標名大小寫不敏感。在SQL語句中,除了使用「:」來標志宿主變數外,還可以使用「$」。當然,「:」是ANSI標准。如:EXEC SQL connect to $hostvar。對於注釋,可以使用「--」,也可以使用標準的「/*…*/」。
2)、宿主變數和NULL
方法1:使用指示符變數。
方法2:使用函數risnull()和rsetnull()。
3)、指示符變數
大多數程序設計語言(如C)都不支持NULL。所以對NULL的處理,一定要在SQL中完成。我們可以使用主機指示符變數來解決這個問題。在嵌入式SQL語句中,宿主變數和指示符變數共同規定一個單獨的SQL類型值。指示變數和前面宿主變數之間用一個空格相分隔。如:
EXEC SQL select lname, company
into :name INDICATOR :nameind, :comp INDICATOR :compind
nameind是name變數的指示符,而compind是comp變數的指示符。
可以通過以下三種方法使用指示符變數:
方法1、使用INDICATOR關鍵字。
:hostvar INDICATOR :indvar
方法2、
:hostvar :indvar
方法3、使用$符號。
$hostvar $indvar。
無論採用哪種方法,都是實現指示符變數的作用。即:當宿主變數hostvar應該返回NULL時,指示符變數為-1。當宿主變數hostvar應該返回不是NULL而且無需截斷時,指示符變數為0。當返回值太大而需要截斷時,指示符變數是截斷前數據的長度。SQLSTATE會返回01004錯誤信息。請看下面這個例子:
EXEC SQL BEGIN DECLARE SECTION;
char name[16];
char comp[20];
short nameind;
short compind;
EXEC SQL END DECLARE SECTION;
EXEC SQL select lname, company
into :name INDICATOR :nameind, :comp INDICATOR :compind
from customer
where customer_num = 105;
如果對應105的company為NULL,則compind小於0,如果lname的結果大於15個位元組,那麼name包含前15個字元。
4)、宿主變數的數據類型
INFROMIX ESQ/C的宿主變數數據類型除了標准C的數據類型外,可以是它自己定義的數據類型。如:
lvarchar數據類型
EXEC SQL BEGIN DECLARE SECTION;
varchar varc_name[n + 1];
EXEC SQL END DECLARE SECTION;
lint8數據類型
EXEC SQL BEGIN DECLARE SECTION;
int8 int8_var1;
ifx_int8_t int8_var2;
EXEC SQL BEGIN DECLARE SECTION;
lfixchar數據類型
EXEC SQL BEGIN DECLARE SECTION;
boolean flag;
fixchar my_boolflag;
int id;
EXEC SQL END DECLARE SECTION;
lDecimal數據類型
#define DECSIZE 16
struct decimal
{
short dec_exp;
short dec_pos;
short dec_ndgts;
char dec_dgts[DECSIZE];
};
typedef struct decimal dec_t;
lDatetime數據類型
EXEC SQL include datetime;
EXEC SQL BEGIN DECLARE SECTION;
datetime year; /* will cause an error */
datetime year to day year, today; /* ambiguous */
EXEC SQL END DECLARE SECTION;
lInterval hour等數據類型
EXEC SQL BEGIN DECLARE SECTION;
interval day(3) to day accrued_leave, leave_taken;
interval hour to second race_length;
interval scheled;
EXEC SQL END DECLARE SECTION;
l其他數據類型
EXEC SQL BEGIN DECLARE SECTION;
loc_t my_simple_lo;
EXEC SQL END DECLARE SECTION;
my_simole_lo.loc_loctype = LOCMEMORY;
l在INFORMIX資料庫中,'\0'表示為NULL。如:
id = 1;
flag = '\0'; /* valid boolean assignment to FALSE */
EXEC SQL insert into table2 values (:id, :flag); /* inserts FALSE */
在以SQL為基礎的DBMS支持的數據類型與程序設計語言支持的數據類型之間有很大差別。如果你通過宿主變數從資料庫取值,或者通過宿主變數向資料庫插入值,都存在數據類型轉換的問題。

⑸ C語言資料庫設計

create table student_exercise /*學生個人作業信息(學生查看)*/( exercise_id int not null, /*外鍵*/ exercise_content_id int not null, student_id varchar(20) not null,/*修改過*/ class_name varchar(20) not null, exercise_receive_mark int not null, student_answer varchar(500) not null, standard_answer varchar(500) not null,)

⑹ 資料庫題

81. 對於分布式資料庫,可以簡單歸納為 ( A )
A.數據邏輯上分散,物理上統一 B.數據物理上分散,邏輯上統一
C.數據在邏輯上、物理上都是分散的 D.數據在邏輯上、物理上都是統一的
82. 子模式DDL用來描述 ( A )
A. 資料庫的總體邏輯結構B. 資料庫的局部邏輯結構
C. 資料庫的物理存儲結構D. 資料庫的概念結構
83. 在DBS中,DBMS和OS之間的關系是 ( B )
A. 相互調用 B. DBMS調用OS
C. OS調用DBMS D. 並發運行
84.在關系R與關系S進行自然連接時,只把R中原該舍棄的元組保存到新關系中,這種操作稱為 ( C )
A.外連接 B.內連接 C.左外連接 D.右外連接
85.在SQL中使用FOREIGN KEY 時,與之配合的語句是 ( D )
A.EXISTS B.EXCEPT C.TABLE D.REFERENCES
86. 在資料庫設計中,將ER圖轉換成關系數據模型的過程屬於 ( C )
A. 需求分析階段 B. 邏輯設計階段 C. 概念設計階段 D. 物理設計階段
87.定義片段以及全局關系與片段之間映像的模式是 ( D )
A.外模式 B. 概念模式 C.分片模式 D.分配模式
88.在資料庫技術中,未提交的隨後又被撤消的數據稱為( D )
A.錯誤數據 B.冗餘數據 C.過期數據 D.臟數據
89.下述各項中,屬於資料庫系統的特點的是 ( C )
A.存儲量大 B.存取速度快 C.數據獨立性 D.操作方便
91. SQL的全局約束是指基於元組的檢查子句和 (B )
A. 非空值約束 B. 域約束子句
C. 斷言 D. 外鍵子句
92. 分布式資料庫系統中分片模式和分配模式均是 ( C )
A. 全局的 B. 局部的
C. 分布的 D. 集中的
93.在資料庫系統中,視圖可以提供數據的(A)
A.完整性 B.並發性 C.安全性 D.可恢復性
94.在分布式資料庫中,數據的垂直分片是對全局關系的(B)
A.選擇操作 B.投影操作
C.自然聯接操作 D.半聯接操作
95. 在關系資料庫中,表與表之間的聯系是通過( D )實現的。
A.實體完整性規則B.參照完整性規則
C.用戶自定義的完整性規則D.主鍵
96. 以下操作中,不能用DML實現的是 ( B )
A.數據查詢B.定義資料庫的三級結構
C.數據插入D.數據刪除
97. 如果關系R和S進行自然連接時,只把S中原該舍棄的元組保存到新關系中,這種操作稱為 ( D )
A.外連接B.內聯接 C.左連接D.右外連接
98. 在關系中,能唯一標識組的屬性集稱為關系模式的 ( B )
A.候選鍵 B.主鍵 C.外鍵 D.超鍵
99. 能夠消除多值依賴引起的冗餘的範式是 ( C )
A.2NF B.3NF C.4NF D.BCNF
100.在面向對象的模型中,表示實體中的每個屬性時,使用 ( A )
A.兩個變數,一個消息 B.兩個變數,兩個消息
C.一個變數,兩個消息 D.一個變數,一個消息

老長時間不看了 不幹保證全隊…………

⑺ C語言資料庫。

這不是一個庫,這只是一小段代碼。資料庫的概念你還需要好好學,資料庫是一個文件,他可以存放很多數據,並對數據進行處理的。你這個程序只需要在一個資料庫下建一張表就夠用了

⑻ 怎樣用C語言編寫資料庫管理系統急求急求!!

用ADO訪問SQL Server資料庫那個么?
我畢業設計做的是那個,給你找找吧。
學校時候的代碼,代碼規范比較差。代碼質量沒有問題。

⑼ C語言資料庫是什麼

資料庫是用來存入數據的倉庫。用戶可以對文件中的數據進行新增、查詢、更新、刪除等操作。但是C語言和資料庫是兩個東西,他們之間的關系就是C語言可以用來開發資料庫管理軟體,也可以通過C語言藉助於SQL語句來操作資料庫。

C語言普適性最強的一種計算機程序編輯語言,它不僅可以發揮出高級編程語言的功用,還具有匯編語言的優點,因此相對於其它編程語言,它具有自己獨特的特點。具體體現在以下三個方面:

其一,廣泛性。C 語言的運算范圍的大小直接決定了其優劣性。C 語言中包含了34種運算符,因此運算范圍要超出許多其它語言,此外其運算結果的表達形式也十分豐富。此外,C 語言包含了字元型、指針型等多種數據結構形式,因此,更為龐大的數據結構運算它也可以應付。

其二,簡潔性。9 類控制語句和32個KEYWORDS是C語言所具有的基礎特性,使得其在計算機應用程序編寫中具有廣泛的適用性,不僅可以適用廣大編程人員的操作,提高其工作效率,同 時還能夠支持高級編程,避免了語言切換的繁瑣。


(9)c資料庫工廠擴展閱讀

資料庫架構

1、內層:最接近實際存儲體,亦即有關數據的實際存儲方式。

2、外層:最接近用戶,即有關個別用戶觀看數據的方式。

3、概念層:介於兩者之間的間接層。

熱點內容
struts1ajax上傳 發布:2024-10-31 13:18:58 瀏覽:637
coreldraw字體文件夾 發布:2024-10-31 13:17:08 瀏覽:271
oraclesql的用法 發布:2024-10-31 13:06:55 瀏覽:718
安卓圖標怎麼擴大 發布:2024-10-31 13:04:49 瀏覽:905
蘋果機和安卓機哪個像素好 發布:2024-10-31 13:02:32 瀏覽:774
華為伺服器ibmc設置ip 發布:2024-10-31 13:01:38 瀏覽:54
姓名測演算法 發布:2024-10-31 12:56:39 瀏覽:542
如何設置錄像機存儲時間長短 發布:2024-10-31 12:55:44 瀏覽:119
除濕機的壓縮機 發布:2024-10-31 12:54:44 瀏覽:501
javauriuri 發布:2024-10-31 12:51:56 瀏覽:903