在main.pc的insert 函數前加上extern
如
extern void insert (char password_[6],char id_[20],int balance_);
『貳』 我想在linux下用C語言連接遠程oracle,可以不裝客戶端而用代碼實現連接並操作嗎如果可以,怎麼連
必須使用orcale資料庫提供的客戶端開發庫中的函數來和oracle資料庫伺服器來進行通訊。
『叄』 用C語言寫了含有資料庫的代碼,寫完了,請問怎麼運行資料庫和代碼,資料庫是oracle的
你的問題不清楚耶!我就了解的內容進行下分析:
1,資料庫是需要啟動伺服器,也就是首先啟動伺服器,然後資料庫是在伺服器裡面,才能提供服務。
2,C語言代碼,你寫好了,還只是代碼而已,需要運用編譯器,進行編譯生成可執行文件,就可以運行了。
希望能幫到你!
『肆』 怎麼在linux環境下通過c/c++語言連接oracle資料庫
推薦你使用pc語言,用這個編寫代碼很容易對資料庫oracle進行操作.各種操作都非常簡單.
例如:
EXEC sql CONNECT :UserName IDENTIFIED BY :PassWord using :ServerName;
這樣一個簡單語句就可以實現連接資料庫.
EXEC SQL CALL insert_data_sms(:spnumber,:usernumber,:content,:flag,:priority,:spnode,:sequenid_sp,:iresult);
EXEC SQL COMMIT;/*提交事務*/
可調用存儲過程.
你可以找找這方便的書看看
『伍』 用CDatabase中OpenEx直接連接Oracle資料庫,連接字元串該怎麼寫
資料庫編程的思路都是一致的:打開資料庫連接-》執行SQL語句-》獲得查詢結果-》關閉資料庫連接,不同的資料庫訪問技術有不同的要求,比如用C API詰問MySql資料庫的時候還得釋放查詢結果集。
ODBC訪問資料庫得配置數據源
配置ODBC數據源:打開控制面板下的「數據源」,彈出「ODBC數據源管理器」,選擇DSN選項卡-》添加->你選擇你的SQL Server選項,單擊完成。如圖然後你再按照向導提示添加。
代碼中用ODBC訪問資料庫你得加上afxdb.h頭文件,
用CDataBase 類連接資料庫、CRecordSet類查詢記錄。
現在在VC訪問資料庫常用的是ADO訪問,你可以找一下我前面的回答有ADO訪問資料庫的步驟。
CDataBase m_cODBCDb;
用CDataBase類的OpenEx()函數打開資料庫連接。連接字元串你自己構造一下。
定義一個與上面資料庫相關的查詢對象
CRecordSet m_cODBCRec(&m_cODBCDb);
用這個查詢對象的open方法就可以執行SQL語句與資料庫交互了;
現在用VC、MFC訪問資料庫常用的技術是ADO,學學這個吧。難點、但很實用!
導入ADO庫
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF", "adoEOF")
2、用導入的動態庫的指針操作資料庫.
打開資料庫連接
_ConnectionPtr m_pConn; // 資料庫連接指針
// 創建Conneciton對象
m_pConn.CreateInstance(_T("ADODB.Connection"));
用ConnectionPtr 的open方法m_pConn->Open(_bstr_t(m_sConn),
_T(""), _T(""), lOptions));
m_sConn為你連接資料庫的信息,你應該按照你的要求打開資料庫
然後你用打開的那個連接進行操作資料庫。比如
_RecordsetPtr pRec = m_pConn->Execute(_bstr_t(pszSql), NULL, CmdText);
pszSql 就你要操作資料庫的SQL語句。在這個SQL語句里你可以創建表、更新表等。
用ADO訪問的時候要求初始他COM庫和釋放COM對象
// 初始化COM環境(庫)
::CoInitialize(NULL);
//釋放COM對象
::CoUninitialize();
『陸』 怎麼把C語言和Oracle11g連接在一起
有三種辦法:
1、用ODBC,安裝ODBC驅動,使用微軟提供的ODBC的API訪問資料庫;
2、用ORACLE提供的OCI API調用方式;
3、用ORACLE提供的PRO C方式。
如果你熟悉SQL,建議用方式3,如果熟悉ODBC,建議用方式1,方式2比較麻煩些。
以下代碼是我用PRO C編寫的,供參考:
int ProcConnect(char * sDatabaseName,char * sUserName, char * sPassword)
{
EXEC SQL CONNECT :sUserName IDENTIFIED BY :sPassword USING :sDatabaseName;
if(DBError("Connect Database failed.")) return FALSE;
else return TRUE;
}
/*===========================================================================*/
void ProcCommit()
{
EXEC SQL COMMIT;
}
/*===========================================================================*/
void ProcCommitRelease()
{
EXEC SQL COMMIT RELEASE;
}
/*===========================================================================*/
void ProcRollback()
{
EXEC SQL ROLLBACK;
}
/*===========================================================================*/
void ProcRollbackRelease()
{
EXEC SQL ROLLBACK RELEASE;
}
/*===========================================================================*/
int DBError(char * sMsg)
{
char sErrMsg[1024];
int nRetCode;
size_t szBuf_len, szMsg_len;
if (sqlca.sqlcode >= 0) return FALSE;
szBuf_len = sizeof(sErrMsg);
sqlglm(sErrMsg, &szBuf_len, &szMsg_len);
sErrMsg[szMsg_len] = 0;
sprintf(sDBErrorBuff,"\r\nSQL DBError point:%s", sMsg);
sprintf(sDBErrorBuff+strlen(sDBErrorBuff),"\r\nsqlcode = %d,%s\r\n", sqlca.sqlcode, rTrim(sErrMsg));
if(OraDBDisconnected)
{
printf("The DBConnection was broken!\r\n");
exit(-1);
}
else nRetCode = TRUE;
printf("%s\r\n",sDBErrorBuff);
return nRetCode;
}
『柒』 pro*C連oracle資料庫,編譯器是VC++6.0
先用PROC編譯成cpp文件,再用VC++6.0編譯。
『捌』 C#中如何把Oracle資料庫查詢的結果集返回
1、首先通過DLL方式進行連接資料庫, 也是一個比較通用的方式,項目引入後,即可使用,非常方便,使用之前如有把封裝的DLL文件引入自己的項目中,項目里就可以直接調用。
『玖』 c連接oracle資料庫的連接語句
連接代碼如下:
int main()
{
EXEC SQL BEGIN DECLARE SECTION;
char oc_passwd[101]; /*資料庫密碼*/
char oc_userid[101]; /*資料庫用戶名*/
char oc_dbname[101]; /*資料庫名*/
char oc_coad[101];
EXEC SQL END DECLARE SECTION;
memset(oc_passwd, 0x00, sizeof(oc_passwd));
memset(oc_userid, 0x00, sizeof(oc_userid));
memset(oc_dbname, 0x00, sizeof(oc_dbname));
/*取資料庫用戶名*/
strcpy(oc_userid, "userid");
/*取資料庫用戶密碼*/
strcpy(oc_passwd, "passwd") ;
/*取資料庫名*/
strcpy(oc_dbname, "dbname");
EXEC SQL CONNECT :oc_userid
IDENTIFIED BY :oc_passwd
USING :oc_dbname;
if (sqlca.sqlcode != 0)
{
printf("用戶名[%s]密碼[%s]資料庫[%s]\n", oc_userid, oc_passwd, oc_dbname);
printf("連接資料庫失敗,sqlcode=%d\n", sqlca.sqlcode);
return -1;
}
/*讀table取coad欄位*/
memset(oc_coad, 0x00, sizeof(oc_coad));
EXEC SQL SELECT coad
INTO :oc_coad
FROM table
WHERE 1=1;
if (sqlca.sqlcode == NORECORD)
{
printf("查詢無記錄\n");
return -1;
}
else if (sqlca.sqlcode != 0)
{
printf("查詢失敗,sqlcode=%d\n", sqlca.sqlcode);
return -1;
}
return 0;
}