使用c語言連接sqlserver需要進行以下操作。
1、安裝本機環境:這里以sql2008r2+vs2010為例。先在本機安裝sql2008r2,再安裝vs2010。安裝完成以後可以進去我的電腦-管理-服務找到sqlserver服務是否安裝成功並啟動。
2、配置本機數據連接:(1)點擊電腦左下角的開始-控制面板-管理工具-數據源(ODBC)。(2)雙擊打開,點擊用戶DNS菜單,點擊新增,彈出創建數據源對話框。(3)在對話框中選擇SQLserver,點擊完成,進去創建到sqlserver的新數據源對話框。(4)在名稱文本框中輸入數據源名稱,在伺服器文本框中選擇模顫伺服器名,點擊下一步進去。(5)點擊windowsnt驗證,點擊下一步。(6)勾選更改默認的資料庫為復選框,默認資料庫為master,修改為自己創建的資料庫,點擊下一步,彈出創建到sqlserver的新數據判搭源。(7)默認設置,點擊完成,彈出odbcsqlserver安裝對話框。(8)在對話框中點擊測試數旦沖敗據源,會顯示測試成功。這樣,數據源創建完成。
3、創建工程:使用宇宙第一編輯器vs2010創建工程,選擇vc++,即可使用。
② c sqlserver 操作
在安裝VS的時候會自動安裝一個sql server的精簡版express版本,這個版本的功能沖畝不是很多,建議卸載然後安裝一個開發版或其他版本資料庫。
在安裝的過程中會出現一個關於實例選擇的問題,你可以按自己喜好看是默悄耐認實例還是命名實例,啟判春如果是卸載後安裝建議選擇命名實例,隨便起個名字。
登陸資料庫你可以在網路上查具體的方法,至於你說到的添加修改刪除數據,都是基於表操作的,sql語法是
添加 insert into 表 values(數據......) 或
insert into 表 select 數據......
修改 update 表 set 列 = 新值 where 篩選條件
刪除 delete from 表 where 篩選條件
③ 怎麼用sqlserver寫c語言
1、確定目標Sqlserver是否允許遠程訪問
2、確定目標SqlServer服務端擾嘩喚口是否是默認埠
3、檢查緩凱資料庫蘆段名稱、密碼什麼是否正確
④ sqlserver ABC分類怎麼算出來
CREATE TABLE #test(
itemCode VARCHAR(10),
itemAmount INT
);
go
INSERT INTO #test
SELECT '1010001', 1000 UNION ALL
SELECT '1010002', 500 UNION ALL
SELECT '1010003', 700 UNION ALL
SELECT '1010004', 200 UNION ALL
SELECT '1010005', 1300 UNION ALL
SELECT '1010006', 1200 UNION ALL
SELECT '1010007', 100 UNION ALL
SELECT '1010008', 600 UNION ALL
SELECT '1010009', 800 UNION ALL
SELECT '1010010', 700 UNION ALL
SELECT '1010011', 500 UNION ALL
SELECT '1010012', 1000 UNION ALL
SELECT '1010013', 300 UNION ALL
SELECT '1010014', 400 UNION ALL
SELECT '1010015', 900 UNION ALL
SELECT '1010016', 800 UNION ALL
SELECT '1010017', 200 UNION ALL
SELECT '1010018', 100 UNION ALL
SELECT '1010019', 1100 UNION ALL
SELECT '1010020', 1200;
go
With MyCte AS
(
SELECT
ROW_NUMBER() OVER( ORDER BY itemAmount DESC ) AS NO,
t.itemCode,
t.itemAmount
FROM
#test t
)
SELECT
itemCode,
itemAmount,
STR( 100 * itemAmount / tSum.itemAmountSum, 5, 2) + '%' AS [佔比],
CASE
WHEN (SELECT SUM(itemAmount) FROM MyCte M2 WHERE M2.NO <= MyCte.NO ) / tSum.itemAmountSum <= 0.5 THEN 'A'
WHEN (SELECT SUM(itemAmount) FROM MyCte M2 WHERE M2.NO <= MyCte.NO ) / tSum.itemAmountSum > 0.5
AND (SELECT SUM(itemAmount) FROM MyCte M2 WHERE M2.NO <= MyCte.NO ) / tSum.itemAmountSum < 0.8 THEN 'B'
ELSE 'C' END AS [類別]
FROM
MyCte,
(SELECT SUM(itemAmount) * 1.0 AS itemAmountSum FROM #test) tSum
ORDER BY
MyCte.itemAmount DESC;
itemCode itemAmount 佔比 類別
---------- ----------- ------ --
1010005 1300 9.56% A
1010006 1200 8.82% A
1010020 1200 8.82% A
1010019 1100 8.09% A
1010001 1000 7.35% A
1010012 1000 7.35% A
1010015 900 6.62% B
1010016 800 5.88% B
1010009 800 5.88% B
1010010 700 5.15% B
1010003 700 5.15% B
1010008 600 4.41% C
1010002 500 3.68% C
1010011 500 3.68% C
1010014 400 2.94% C
1010013 300 2.21% C
1010017 200 1.47% C
1010004 200 1.47% C
1010007 100 0.74% C
1010018 100 0.74% C
(20 行受影響)
SQL Server 2008 Express 下測試通過.
⑤ C語言操作sqlserver資料庫的問題
有沒有語氣句連接
⑥ sqlserver的BCP導入導出
bcp命令是SQL Server提供的一個快捷的數據導入導出工具 使用它不需要啟動任何圖形管理工具就能以高效的方式導入導出數據 bcp是SQL Server中負責導入導出數據的一個命令行工具 它是基於DB Library的 並且能以並行的方式高效地導入導出大批量的數據 bcp可以將資料庫的表或視圖直接導出 也能通過SELECT FROM語句對表或視圖進行過濾後導出 在導入導出數據時 可以使用默認值或是使用一個格式文件將文件中的數據導入到資料庫或將資料庫中的數據導出到文件中
bcp的主要參數介紹
bcp共有四個動作可以選擇
( ) 導入
坦鄭前這個動作使用in命令完成 後面跟需要導入的文件名
( ) 導出
這個動作使用out命令完成 後面跟需要導出的文件名
( ) 使用SQL語句導出
這個動作使用queryout命令完成 它跟out類似 只是數據源不是表或視圖名 而是SQL語句
( ) 導出格式文件
這個動作使用format命令完成 後而跟格式文件名
下面介紹一些常用的選項
f format_file
format_file表示格式文件名 這個選項依賴於上述的動作 如果使用的是in或out format_file表示已經存在的格式文件 如果使用的是format則表示是要讓清生成的格式文件
x
這個選項要和 f format_file配合使用 以便生成xml格式的格式文件
F first_row
指定從被導出表的哪一行導出 或從被導入文件的哪一行導入
L last_row
指定被導出表要導到哪一行結束 或從被導入文件導數據時 導到哪一行結束
c
使用char類型做為存儲類型 沒有前綴且以 做為欄位分割符 以 做為行分割符
w
和 c類似 只是當使用Unicode字元集拷貝數據時使用 且以nchar做為存儲類型
t field_term
指定字元分割符 默認是
r row_term
指定行分割符 默認是
S server_name[ instance_name]
指定要連接的SQL Server伺服器的實例 如果未指定此選項 bcp連接本機的SQL Server默認實例 如果要連接某台機器上的默認實例 只需要指定機器名即可
U login_id
指定連接SQL Sever的用戶名
P password
指定連接SQL Server的用戶名密碼
T
指定bcp使用信任連接登錄SQL Server 如果未指定 T 必須指定 U和 P
k
指定空列使用null值插入 而不是這列的默認值
如何使用bcp導出數據
叢純( ) 使用bcp導出整個表或視圖
bcp AdventureWorks sales currency out c:currency txt c U sa P password 使用密碼連接或bcp AdventureWorks sales currency out c:currency txt c T 使用信任連接
下面是上述命令執行後的輸出結果
Starting
rows copied
Neork packet size (bytes):
Clock Time (ms ) Total : Average : ( rows per sec )
下面是currency txt的部分內容
AED Emirati Dirham : :
AFA Afghani : :
ZWD Zimbabwe Dollar : :
在使用密碼登錄時需要將 U後的用戶名和 P後的密碼加上雙引號
注 bcp除了可以在控制台執行外 還可以通過調用SQL Server的一個系統存儲過程xp_cmdshell以SQL語句的方式運行bcp 如上述第一條命令可改寫為
EXEC master xp_cmdshell bcp AdventureWorks sales currency out c:currency txt c U sa P password
執行xp_cmdshell後 返回信息以表的形式輸出 為了可以方便地在SQL中執行bcp 下面的命令都使用xp_cmdshell執行bcp命令
( ) 對要導出的表進行過濾
bcp不僅可以接受表名或視圖名做為參數 也可以接受SQL做為參數 通過SQL語句可以對要導出的表進行過濾 然後導出過濾後的記錄
EXEC master xp_cmdshell bcp SELECT TOP * FROM AdventureWorks sales currency queryout c:currency txt c U sa P password
bcp還可以通過簡單地設置選項對導出的行進行限制
這條命令使用了兩個參數 F 和 L 表示從SE
EXEC master xp_cmdshell bcp SELECT TOP * FROM AdventureWorks sales currency queryout c:currency txt F L c U sa P password
LECT TOP * FROM AdventureWorks sales currency所查出來的結果中取第 條到 條記錄進行導出
如何使用bcp導出格式文件
bcp不僅可以根據表 視圖導入導出數據 還可以配合格式文件對導入導出數據進行限制 格式文件以純文本文件形式存在 分為一般格式和xml格式 用戶可以手工編寫格式文件 也可以通過bcp命令根據表 視圖自動生成格式文件
EXEC master xp_cmdshell bcp AdventureWorks sales currency format nul f c:currency_format fmt c T
上述命令將currency表的結構生成了一個格式文件currency_format fmt 下面是這個格式文件的內容
SQLCHAR CurrencyCode SQL_Latin _General_CP _CI_AS
SQLCHAR Name SQL_Latin _General_CP _CI_AS
SQLCHAR ModifiedDate
這個格式文件記錄了這個表的欄位(共 個欄位)類型 長度 字元和行分割符和欄位名等信息
bcp還可以通過 x選項生成xml格式的格式文件
EXEC master xp_cmdshell bcp AdventureWorks sales currency format nul f c:currency_format fmt x c T
xml格式文件所描述的內容和普通格式文件所描述的內容完全一樣 只是格式不同
如何使用bcp導入數據
bcp可以通過in命令將上面所導出的currency txt和currency txt再重新導入到資料庫中 由於currency有主鍵 因此我們將復制一個和currency的結構完全一樣的表
SELECT TOP * INTO AdventureWorks sales currency FROM AdventureWorks sales currency
將數據導入到currency 表中
EXEC master xp_cmdshell bcp AdventureWorks sales currency in c:currency txt c T
導入數據也同樣可以使用 F和 L選項來選擇導入數據的記錄行
EXEC master xp_cmdshell bcp AdventureWorks sales currency in c:currency txt c F L T
lishixin/Article/program/SQLServer/201311/22188
⑦ SQLSERVER是屬於web還是c/s型
兩個都可以的,沒限制。。
⑧ vc中怎麼連接SqlServer
以下給出一個Visual C++下使用ADO的Connection對象及其Record set對象的基本步驟:
(1) 使用import指令引入ADO2組件
例:#import "C:\ADO\msado15.dll" no_namespace rename("EOF", "EndOfFile")
(2) 定義CADORecordBinding 的派生類,用於程序與資料庫表欄位的交互,該類的定義可參見icrsint.h。
例:
class CIntlive : public CADORecordBinding
{
public:
DBTIMESTAMP m_datetime; //定義ADO記錄集欄位變數(與資料庫表欄位相對應)
long m_key;
long m_value;
long m_quality;
WORD m_stsdatetime; //定義ADO記錄集狀態變數
WORD m_stskey;
WORD m_stsvalue;
WORD m_stsquality;
BEGIN_ADO_BINDING(CIntlive) //將資料庫欄位與ADO記錄集欄位變數綁定
ADO_VARIABLE_LENGTH_ENTRY2(1,adDBTimeStamp,m_datetime,sizeof(m_datetime),m_stsdatetime,true)
ADO_NUMERIC_ENTRY(2,adInteger,m_key,10,0,m_stskey,true)
ADO_NUMERIC_ENTRY(3,adInteger,m_value,10,0,m_stsvalue,true)
ADO_NUMERIC_ENTRY(4,adInteger,m_quality,10,0,m_stsquality,true)
END_ADO_BINDING()
};
(3) 調用CoInitialize初始化COM ::CoInitialize(NULL);
(4) 聲明ADO的Connection對象指針和Recordset對象指針並初始化。(類型名在 msado15.dll中已定義)
例:
_ConnectionPtr pConnection1 = NULL;
_RecordsetPtr rstADO1 = NULL;
(5) 定義CADORecordBinding派生類的實例及其Bind介面指針。
例:
CIntlive m_intdata;
IADORecordBinding *rstADOBind1 = NULL;
(6) 產生Connection對象實例和Record set對象實例。
例:
pConnection1.CreateInstance(_uuidof(Connection));
rstADO1.CreateInstance(__uuidof(Recordset)) ;
(7) 連接到資料庫並打開Record set對象,其中open函數的參數的使用方法可參見微軟MSDN中ADO 相應對象參數的Basic描述。
例:
PConnection1->Open("driver={SQL server};server=servera;uid=sa;pwd=;database=pubs","","",NULL);
rstADO1->Open("data", _variant_t((IDispatch *)pConnection1,true),
adOpenKeyset,adLockBatchOptimistic, adCmdTable);
(8) 將CADORecordBinding派生類的實例聯編到Record set對象的Bind介面。
例:
RstADOBind1->BindToRecordset(&m_intdata);
(9) 對Record set對象實例進行操作。操作方法可參見微軟MSDN中ADO Record set對象相應方法的Basic描述。
例:
rstADO1->Move Next(); //移動游標到下一條記錄
rstADO1->Update(_variant_t("quality"),_variant_t("3"))); //修改記錄的quality欄位的值為3
rstADO1->Update Batch(adAffectAll)); //將在Record set對象上的所有更新一次送入資料庫
(10) 關閉Record set對象並釋放Bind介面。
例:
RstADO1->Close();
RstADOBind2->Release();
(11) 關閉連接 pConnection1->Close();
(12) 調用CoUnitialize釋放COM資源 ::CoUninitialize();
⑨ 【急,50分】vc++連接SQLSERVER2000遇到問題,在線等
因為你是用向導生成的。用向導生成的話,會自動映射欄位變數,知輪因此只老猛襲能查你綁定的那張表。
如果你不用向導生成,則可以查詢任意一個SQL語句產生侍兄的記錄集,包括多個表之間的符合查詢。例如:
CDatabase db;
db.Open( ................ );
CRecordset set( & db );
CString SQL = _T("select a.name, b.id form table1 a, table2 b where a.id = b.id");
set.open( sql );
⑩ sqlserver
摘自:http://database.ctocio.com.cn/analysis/465/7709465.shtml
【IT專家網獨家】SQL Server用戶自定義函數和存儲過程有類似的功能,都可以創建捆綁SQL語句,存儲在server中供以後使用。這樣能夠極大地提高工作效率,通過以下的各種做法可以減少編程所需的時間:
重復使用編程代碼,減少編程開發時間。
隱藏SQL細節,把SQL繁瑣的工作留給資料庫開發人員,而程序開發員則集中處理高級編程語言。
維修集中化,可以在一個地方做業務上的邏輯修改,然後讓這些修改自動應用到所有相關程序中。
乍看之下,用戶自定義函數和存儲過程的功能似乎一摸一樣。但是,其實這兩者之間還有一些雖然細微但是很重要的差異:
存儲過程是使用EXEC命令獨立調用的,而用戶自定義函數是在另一個SQL語句中調用的。
l存儲程序是允許用戶和程序去使用存儲過程,而不是允許其存取表格,這樣能夠增強程序安全性。與標準的SQL Server相比,存儲程序限制用戶行動許可權方面更為細化。例如,如果你有一個貨存表格,每次賣出一個貨物收銀員都要對表格進行更新一次(從貨存中把該貨品減去一件)。你可以給收銀員設置許可權,允許其使用decrement_item存儲過程,而不是允許他們有任意修改或村表格的許可權。
函數必須始終返回一個值(一個標量值或一個表格)。而存儲過程可以返回一個標量值、一個表值或無需返回值。
總而言之,存儲程序對SQL Server開發員來說是最有價值的寶物之一,用於資料庫中,能夠大大的提高工作效率,增強安全性,絕對超值。