使用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开发员来说是最有价值的宝物之一,用于数据库中,能够大大的提高工作效率,增强安全性,绝对超值。