#include <stdio.h>
#include <stdlib.h>
EXEC SQL INCLUDE sqlca;
main()
{
EXEC SQL BEGIN DECLARE SECTION;
char first_name[50];
char last_name[] = "White";
EXEC SQL END DECLARE SECTION;
EXEC SQL CONNECT TO HOME-54XK1BBA18.pubs
USER sa.123; EXEC SQL SELECT au_fname INTO :first_name
from authors where au_lname = :last_name; printf("first name: %s\n",first_name);
return (0);}不知道如何能连接到数据库拷贝到该目录下。
5)连接方式:经预处理后的c文件就可以用c的编译器进行编译连接了。
使用Visual C++ 6.0进行编译连接,连接方式是动态连接,用到动态链接库SQLakw32.dll,sqlaiw32.dll;此两文件已经随同binn.rar的其他内容,被拷贝到C:\Program Files\Microsoft SQL Server\MSSQL\Binn下;但仍然需要把该路径加到系统的路径变量中,以使得程序运行时能找到这两个文件。
1:把该两文件拷贝到操作系统目录下的子目录system32中
2:把C:\Program Files\Microsoft SQL Server\MSSQL\Binn加到系统环境变量path中。“我的电脑”->“属性”->“高级”->“环境变量”->“path,编辑”
6) 把devtools.rar解压到SQLServer的系统目录下,本机SQLServer的系统目录是C:\Program Files\Microsoft SQL Server。
7)初始化Visual C++ 6.0 编译器环境,运行文件:\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT
8)初始化SQLServer的预编译环境,运行文件:\devtools\samples\esqlc\setenv.bat。
9) 初始化Visual C++ 6.0环境。以下所有项设为第一项
Tools->options->directories->Include
Files: C:\Program Files\Microsoft SQL Server\devtools\include
Tools->options->directories->Lib
Files:C:\Program Files\Microsoft SQL Server\devtools\x86lib
10)新开一个c 的工程或项目,project->Settings->Link->Object/Library Modules,添加库文件:SQLakw32.lib和Caw32.lib
已进行以上相关设置了啊……
#include <stdlib.h>
EXEC SQL INCLUDE sqlca;
main()
{
EXEC SQL BEGIN DECLARE SECTION;
char first_name[50];
char last_name[] = "White";
EXEC SQL END DECLARE SECTION;
EXEC SQL CONNECT TO HOME-54XK1BBA18.pubs
USER sa.123; EXEC SQL SELECT au_fname INTO :first_name
from authors where au_lname = :last_name; printf("first name: %s\n",first_name);
return (0);}不知道如何能连接到数据库拷贝到该目录下。
5)连接方式:经预处理后的c文件就可以用c的编译器进行编译连接了。
使用Visual C++ 6.0进行编译连接,连接方式是动态连接,用到动态链接库SQLakw32.dll,sqlaiw32.dll;此两文件已经随同binn.rar的其他内容,被拷贝到C:\Program Files\Microsoft SQL Server\MSSQL\Binn下;但仍然需要把该路径加到系统的路径变量中,以使得程序运行时能找到这两个文件。
1:把该两文件拷贝到操作系统目录下的子目录system32中
2:把C:\Program Files\Microsoft SQL Server\MSSQL\Binn加到系统环境变量path中。“我的电脑”->“属性”->“高级”->“环境变量”->“path,编辑”
6) 把devtools.rar解压到SQLServer的系统目录下,本机SQLServer的系统目录是C:\Program Files\Microsoft SQL Server。
7)初始化Visual C++ 6.0 编译器环境,运行文件:\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT
8)初始化SQLServer的预编译环境,运行文件:\devtools\samples\esqlc\setenv.bat。
9) 初始化Visual C++ 6.0环境。以下所有项设为第一项
Tools->options->directories->Include
Files: C:\Program Files\Microsoft SQL Server\devtools\include
Tools->options->directories->Lib
Files:C:\Program Files\Microsoft SQL Server\devtools\x86lib
10)新开一个c 的工程或项目,project->Settings->Link->Object/Library Modules,添加库文件:SQLakw32.lib和Caw32.lib
已进行以上相关设置了啊……
解决方案 »
- 关于count中的记录为0的问题
- vb+sqlserver2000的c/s应用程序,是用什么决定它用什么网络库连接数据库呢?
- 动态语句的求和出错
- 关于 in的问题
- 数字逻辑课程设计 跪求
- 有没有办法实现这样的效果~~~
- sql several 怎么通过“列”查到到相对应的“表”?
- 数据批量删除 和 触发器 问题!
- 请问CanUpdate()函数总是返回FALSE是怎么回事?怎么解决?(在线等)
- 关于一个insert store procedure 无法生成必要的字段???急急!!!
- SQL带参数存储过程问题,,急`~~~~~在线等!!
- 为什么会出现“无法为此请求检索数据(Microsoft.SqlServer.SmoEnum)”错误?
char deptname[20];
char HSno[9];
char HSname[20];
char HSsex[2];
int HSage;
int NEWAGE;
EXE SQL END DECLARE SECTION;
long SQL INCLUDE sqlca; int main()
{
int count=0;
char yn;
printf("Please choose the department name(CS/MA/IS):");
scanf("%s",&deptname);
EXEC SQL CONNECT TO StarVally_Bak USER "MY-TOMATO\Y.Yang"/"lakewalker"
EXEC SQL DECLARE SX CURSOR FOR
SELECT Sno,Sname,Ssex,Sage
FROM "S-T".Student
WHERE SDept=:dept
EXEC SQL OPEN SX;
for(;;)
{
EXEC SQL FETCH SX INTO :HSno, :HSname, :HSsex, :HSage;
if(sqlca.sqlcode!=0)
{
break;
}
if(count++==0)
printf("\n% -10s % -20s % -10s % -10s\n","Sno","Sname","Ssex","HSage"); printf("% -10s % -20s % -10s % -10d\n",HSno,HSname,HSsex,HSage); printf("UPDATE AGE(y/n)?");
do
{
scanf("%C",&yn);
}
while(yn!='N'&&yn!='n'&&yn!='Y'&&yn!='y'); if(yn=='Y' ¦ ¦yn=='y')
{
printf("INPUT NEWAGE");
scanf("%d",&NEWAGE);
EXEC SQL UPDATE Stduent
SET Sage=:NEWAGE
WHERE CURRENT OF SX;
}
} EXEC SQL CLOSE SX;
EXEC SQL COMMIT WORK;
EXEC SQL DISCONNECT TEST;
}
200113801 本拉登 23 男 电脑科学
200104205 张巧巧 25 女 旅游管理
200113802 张学友 26 男 电脑科学
.
三、访问 程式清单如下:(win2000 VC6.0)
/*******************************************************************
利用ADO访问MS SQL2000
需要: 【1】输出stu_info表内的每一条记录
【2】添加一条新记录
【3】删除名字为"本拉登"的记录
*/
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" \
no_namespace rename("EOF", "EndOfFile")
#include <iostream>
#include <iomanip> //for setw()
using namespace std;
class STU
{
public:
char snum[10]; //学号
char sname[10]; //姓名
char ssex[2]; //姓别
long sage; //年龄
char smajor[20]; //专业
public:
STU(){}
~STU(){}
}; int main()
{
STU student;
::CoInitialize(NULL); // 初始化OLE/COM库环境 ,为访问ADO接口做准备 _RecordsetPtr m_pRecordset("ADODB.Recordset");
_ConnectionPtr m_pConnection("ADODB.Connection"); ... _bstr_t bstrSQL("select * from stu_info"); //查询语句
char * query_cmd = "DELETE FROM stu_info WHERE sname = '本拉登'"; try
{
// 创建Connection对象
m_pConnection.CreateInstance("ADODB.Connection");
// 配置连接字符串,必须是BSTR型或_bstr_t类型
_bstr_t strConnect= "Provider=SQLOLEDB;Server=(local);Database=student; uid=sa; pwd=123;";
//若数据库在网络上则Server为形如(192.168.1.5,3340)
//用户sa和密码123只是针对我的库
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!\n";
// 创建记录集对象
m_pRecordset.CreateInstance(__uuidof(Recordset));
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),
adOpenDynamic,adLockOptimistic,adCmdText); _variant_t vsnum,vsname,vsage,vssex,vsmajor; //对应库中的snum,sname,sage,ssex,smajor
cout << "学号 姓名 年龄 姓别 专业";
cout << "\n----------------------------------------------------------------\n"; 版权申明:本站文章均来自网络,如有侵权,请联系028-86262244-215,我们收到后立即删除,谢谢! while (!m_pRecordset->EndOfFile)
{
vsnum = m_pRecordset->GetCollect(_variant_t((long)0));//这儿给字段编号和字段名都能够
vsname = m_pRecordset->GetCollect("sname");
vsage = m_pRecordset->GetCollect("sage");
vssex = m_pRecordset->GetCollect("ssex");
vsmajor = m_pRecordset->GetCollect("smajor");
if (vsnum.vt != VT_NULL && vsname.vt != VT_NULL && vsage.vt != VT_NULL
&& vssex.vt != VT_NULL && vsmajor.vt != VT_NULL)
{
cout.setf(ios::left);
cout << setw(14) << (char*)(_bstr_t)vsnum;
cout << setw(14) << (char*)(_bstr_t)vsname;
cout << setw(8) << vsage.lVal;
cout << setw(8) << (char*)(_bstr_t)vssex;
cout <<setw(20) << (char*)(_bstr_t)vsmajor;
cout.unsetf(ios::left);
cout << endl;
}
m_pRecordset->MoveNext(); ///移到下一条记录
}
cout << "\n----------------------------------------------------------------\n"; ..
cout << "\n请输入您要添加的学生信息\n";
cout << "学号:";
cin >> student.snum;
cout << "\n姓名:";
cin >> student.sname;
cout << "\n年龄:";
cin >> student.sage;
cout << "\n姓别:";
cin >> student.ssex;
cout << "\n专业:";
cin >> student.smajor;
m_pRecordset->MoveFirst(); //移动到第一条记录
m_pRecordset->AddNew(); ///添加新记录
m_pRecordset->PutCollect("snum",_variant_t(student.snum));
m_pRecordset->PutCollect("sname",_variant_t(student.sname));
m_pRecordset->PutCollect("sage",_variant_t(student.sage));
m_pRecordset->PutCollect("ssex",_variant_t(student.ssex));
m_pRecordset->PutCollect("smajor",_variant_t(student.smajor));
m_pRecordset->Update(); m_pConnection->Execute(query_cmd,NULL,1); //用Execute执行sql语句来删除
m_pRecordset->Close(); // 关闭记录集
} // 捕获异常
catch(_com_error e)
{
// 显示错误信息
cerr << "\nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close(); ::CoUninitialize(); return 0;
}