当前位置:首页 » 编程语言 » 北京神州数据库连接的sql语句
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

北京神州数据库连接的sql语句

发布时间: 2022-08-01 21:21:49

① 打开的链接执行sql语句与execute

<!--#include file="conn.inc"-->
conn.inc这个文文件裏已经写了连接数据库的字符串并且已经建立并打开了连接,裏面有个conn.open这就是打开.裏面的set conn=server.creatobject("adodb.connection")是建立数据库连接的意思
conn.open就是打开,数据库连接字符串我想也是写好了的

<%
sql="update count set count=count+1"
conn.execute sql
%>
上面说明数据库裏有一个叫count的表表裏有一个字段叫count它用来计录这是第几次访问这一页,当打开这一页的时候,我们让count加1,并更新数据库
count1.asp
要显示访问量的结果,所以可以用
<%
set rs=conn.execute("select [count] from [count]")
response.write("当前访问量为:"&rs("count"))
%>

② ASP 怎么连接SQL数据库

ASP与SQL数据库连接语句具体如下:

Set conn = Server.CreateObject("ADODB.Connection")
connstr = "provider=Sqloledb;server=服务器名;uid=用户名;pwd=密码;database=数据库名"
conn.Open connstr
If Err Then
err.Clear
Set conn = Nothing
Response.Write "数据库连接出错,请检查连接字串"
Response.End

(2)北京神州数据库连接的sql语句扩展阅读:

SQL常用命令使用方法:

(1) 数据记录筛选:

sql="select * from 数据表 where 字段名=字段值 order by 字段名 "

sql="select * from 数据表 where 字段名 like ‘%字段值%‘ order by 字段名 "

sql="select top 10 * from 数据表 where 字段名 order by 字段名 "

sql="select * from 数据表 where 字段名 in (‘值1‘,‘值2‘,‘值3‘)"

sql="select * from 数据表 where 字段名 between 值1 and 值2"

(2) 更新数据记录:

sql="update 数据表 set 字段名=字段值 where 条件表达式"

sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"

(3) 删除数据记录:

sql="delete from 数据表 where 条件表达式"

sql="delete from 数据表" (将数据表所有记录删除)

③ c#怎么和sql数据库连接

1、打开Visual
Studio
2008工具,点击文件菜单,选择新建下面的项目选项,如下图所示。
2、在弹出的新建项目界面,选择控制台程序,然后点击确定按钮,如下图所示。
3、在Program.cs界面中引入SqlClient命名空间,这个空间里包含了所有的操作SQL
SERVER的功能,如下图所示。
4、接下来实例化SqlConnection,然后通过SqlConnection实例创建一个连接字符串,如下图所示。
5、然后通过Open方法连接SQL
SERVER,并且输出当前连接的数据库信息,如下图所示。
6、然后运行控制台程序,会在输出窗口中看到连接的数据库信息已打印出来了,如下图所示。
7、在操作完SQL
SERVER的时候,一定要通过Close方法将数据库关闭,如下图所示。

④ 打开报税软件时出现:数据库连接错误:SQL错误信息(htcts):nodata was foundt satisty the request)

找专业人员查看软件的配置文件。重新配置数据库连接。

⑤ 如何用VB实现连接SQL数据库

一是:Public Function ConnectString() _
As String
ConnectString = "Provider=SQLOLEDB;User ID=用户;Password=密码;" & "Data Source=" + IP地址 + ";" & "Initial Catalog=数据库名" _
End Function

二是:
Public Function ExecuteSQL(ByVal SQL _
As String, MsgString As String) _
As ADODB.Recordset

Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sTokens() As String

On Error GoTo ExecuteSQL_Error

sTokens = Split(SQL)
Set cnn = New ADODB.Connection
cnn.Open ConnectString
If InStr("INSERT,DELETE,UPDATE", _
UCase$(sTokens(0))) Then
cnn.Execute SQL
MsgString = sTokens(0) & _
" query successful"
Else
Set rst = New ADODB.Recordset
rst.Open Trim$(SQL), cnn, _
adOpenKeyset, _
adLockOptimistic

Set ExecuteSQL = rst
MsgString = "查询到" & rst.RecordCount & _
" 条记录 "
End If
ExecuteSQL_Exit:
Set rst = Nothing
Set cnn = Nothing
Exit Function

ExecuteSQL_Error:
MsgString = "查询错误: " & _
Err.Description
Resume ExecuteSQL_Exit
End Function
以上复制到模块“Mole1”中

三是:声明:
Dim ADO1 As Recordset
Option Explicit
Dim MsgText As String
Dim TXTSQL As String

四是:连接

TXTSQL = "select * from 表名"

Set ADO1 = ExecuteSQL(TXTSQL, MsgText)
ADO1.Requery

五是显示字段

Set Text1.DataSource = ADO1
Text1.DataField = "字段"

Set MSHFlexGrid1.DataSource = ADO1

⑥ 怎么用java连接SQL数据库

如何用java连接sql的数据库 1、java数据库操作基本流程 : java数据库操作基本流程:取得数据库连接 - 执行sql语句 - 处理执行结果 - 释放数据库连接
2、几个常用的重要技巧:可滚动、更新的记录集 、 批量更新 、事务处理1、取得数据库连接1)用DriverManager取数据库连接例子:String className,url,uid,pwd;
className = "oracle.jdbc.driver.OracleDriver";
url = "jdbc:oracle:thin:@127.0.0.1:1521:orasvr;
uid = "system";
pwd = "manager";
Class.forName(className);
Connection cn = DriverManager.getConnection(url,uid,pwd);2)用jndi(java的命名和目录服务)方式例子String jndi = "jdbc/db";
Context ctx = (Context) new InitialContext().lookup("java:comp/env");
DataSource ds = (DataSource) ctx.lookup(jndi);
Connection cn = ds.getConnection(); //多用于jsp中2、执行sql语句1)用Statement来执行sql语句String sql;
Statement sm = cn.createStatement();
sm.executeQuery(sql); // 执行数据查询语句(select)
sm.executeUpdate(sql); // 执行数据更新语句(delete、update、insert、drop等)statement.close();2)用PreparedStatement来执行sql语句String sql;
sql = "insert into user (id,name) values (?,?)";
PreparedStatement ps = cn.prepareStatement(sql);
ps.setInt(1,xxx);
ps.setString(2,xxx);
...
ResultSet rs = ps.executeQuery(); // 查询
int c = ps.executeUpdate(); // 更新3、处理执行结果查询语句,返回记录集ResultSet。更新语句,返回数字,表示该更新影响的记录数。ResultSet的方法:1、next(),将游标往后移动一行,如果成功返回true;否则返回false。2、getInt("id")或getSting("name"),返回当前游标下某个字段的值。3、释放连接。cn.close();一般,先关闭ResultSet,然后关闭Statement(或者PreparedStatement);最后关闭Connection可滚动、更新的记录集1、创建可滚动、更新的StatementStatement sm=cn.createStatement(ResultSet.TYPE_SCROLL_ENSITIVE,
ResultSet.CONCUR_READ_ONLY);该Statement取得的ResultSet就是可滚动的2、创建PreparedStatement时指定参数PreparedStatemet ps=cn.prepareStatement(sql,
ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);ResultSet.absolute(9000);批量更新1、StatementStatement sm = cn.createStatement();
sm.addBatch(sql1);
sm.addBatch(sql2);
...
sm.executeBatch()一个Statement对象,可以执行多个sql语句以后,批量更新。这多个语句可以是delete、update、insert等或兼有2、 ps = cn.preparedStatement(sql);
{
ps.setXXX(1,xxx);
...
ps.addBatch();
}
ps.executeBatch();一个PreparedStatement,可以把一个sql语句,变换参数多次执行,一次更新。事务的处理1、关闭Connection的自动提交cn.setAutoCommit(false);2、执行一系列sql语句要点:执行每一个新的sql语句前,上一次执行sql语句的Statement(或者PreparedStatemet)必须先closeStatement sm ;
sm = cn.createStatement(insert into user...);
sm.executeUpdate();
sm.close();sm = cn.createStatement("insert into corp...);
sm.executeUpdate();
sm.close();3、提交cn.commit();

⑦ java程序连接sql server2008数据库:求给一个具体的代码,和过程。

连接数据库
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class TestDB {

public static void main(String[] args) {
try {
// 1.注册驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
System.out.println("注册驱动成功");

String url = ""jdbc:microsoft.sqlserver://127.0.0.1:1433;DatabaseName="; //数据库IP,端口,数据库名

String username = "";
String password = "";
// 加载驱动并获取数据库连接对象
Connection connection = DriverManager.getConnection(url, username,
password);
System.out.println("连接数据库成功!");
// 创建Statement对象
Statement stmt = connection.createStatement();
// SQL语句
String sql = "insert into student(id,name,age,email,address) values(1,'tom',23,'[email protected]','England') ";
int rows = stmt.executeUpdate(sql);
if (rows > 0) {
System.out.println("插入成功!");
}
// 释放资源
stmt.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}

catch (ClassNotFoundException e) {
e.printStackTrace();
}

}

}

预编译的数据库处理
public class ConnectionManager{
public static final String DRIVER_CLASS ="";
public static final String URL = "";
public static final String USERNAME = "";
public static final String PASSWORD = "";

//获取连接对象
public static Connection getConnection(){
Connection conn = null;
Class.forName(DRIVER_CLASS);
conn = DriverManager.getConnection(URL,USERNAME,PASSWORD);
return conn;
}
public static void closeAll(ResultSet rs,Statement stmt,Connection conn){
try{
if(rs!=null){
rs.close();
rs = null;
}
if(stmt!=null){
stmt.close();
stmt = null;
}
if(conn!=null){
conn.close();
conn=null;
}
}
}
}
public class DBOperator{
public int executeUpdate(String sql,Object[] params){
int rows = 0;
Connection connn = ConnectionManager.getConnection();
PreparedStatement pstmt = conn.prepareStatement(sql);
if(params!=null){
for(int i=0;i<params.length;i++){
pstmt.setObject(i+1,params[i]);//下标从1开始
}
}
rows = pstmt.executeUpdate();
ConnectionManager.closeAll(null,pstmt,conn);
return rows;
}
public ResultSet executeQuery(String sql,Object[] params){
Connetion conn = ConnectionManager.getConnection();
if(params!=null){
for(int i= 0;i<params.length;i++){
pstmt.setObject(i+1,params(i));
}
}
rs=pstmt.executeQuery();
ConnectionManager.closeAll(rs,pstmt,conn);
return rs;
}
}

/**
*statement连接数据库
*/

public class TestOperatorGrade{
private static void updateGrade(int id,String name,String description){
Class.forName();//注册驱动
Connection conn = DirverManager.getConnection("","","");
Statement stmt = conn.createStament();
String sql = "UPDATE grades set name = '"+name+"',description='"+description+"'WHere id="+id;
int rows = stmt.executeUpdate(sql);

}
}

这是java 程序的代码

⑧ myeclipse链接sql数据库的类的代码怎么写

前期准备工作,安好JDK,MyEclipse。
下载JDBC驱动mysql-connector-java-5.0.5-bin.jar导入到工程中去
1、工程(右键)--buildpath--configurebuildpath--addexternaljars。
2、也可以加到classpath中去,具体如下:“我的电脑”->“属性”->“高级”->“环境变量”,在系统变量那里编辑classpath,将D:mysql-connector-java-5.0.5mysql-connector-java-5.0.5-bin.jar加到最后,在加这个字符串前要加“;”,以与前一个classpath区分开,然后确定。
测试代码:所用驱动mysql-connector-java-5.0-nightly-20071116-bin.jar
程序中引用必要的包:importjava.sql.*;//它包含有操作数据库的各个类与接口
1、加载合适的JDBC驱动程序
Class.forName(Driver);
MySQL驱动程序:com.mysql.jdbc.Driver
Oracle驱动程序:oracle.jdbc.driver.OracleDriver
SQLServer驱动程序:
com.Microsoft.jdbc.sqlserver.SQLServerDriver
2、建立数据库连接
与MySQL数据库连接的方法:
Connectioncon=DriverManager.getConnection(“jdbc:mysql://主机IP或主机名:3306/数据库名”,用户名,密码);
java.sql.DriveManager用来处理装载驱动程序并且为创建新的数据库连接提供支持;
–java.sql.Connection用于完成对特定定数据库的连接;
–java.sql.Statement用于对特定的数据库执行SQL语句;java.sql.Statement又包含了以下两个重要的子类型:
java.sql.PreparedStatement用于执行预编译的SQL语句;
java.sql.CallableStatement用于执行数据库中存储的过程的调用;
--java.sql.ResultSet用于保存查询所得的结果集
3、创建Statement对象
Statementst=con.createStatement();//最后可以不关闭,但推荐关闭
利用Statement对象可以执行静态SQL语句,静态SQL语句可以是Select语句、Delete语句、Update语句和Insert语句。
执行SQL语句
Statement接口提供了三种执行SQL语句的方法:executeQuery()、executeUpdate()和execute()。具体使用哪一个方法由SQL语句本身来决定。
方法executeQuery用于产生单个结果集的语句,例如SELECT语句等。
方法executeUpdate用于执行INSERT、UPDATE或DELETE语句以及SQLDDL(数据定义语言)语句,例如CREATETABLE和DROPTABLE。INSERT、UPDATE或DELETE语句的效果是修改表中零行或多行中的一列或多列。executeUpdate的返回值是一个整数,指示受影响的行数(即更新计数)。对于CREATETABLE或DROPTABLE等不操作行的语句,executeUpdate的返回值总为零。
方法execute用于执行返回多个结果集、多个更新计数或二者组合的语句。一般不会需要该高级功能。
①JDBC在编译时并不对将要执行的SQL查询语句作任何检查,只是将其作为一个String类对象,直到驱动程序执行SQL查询语句时才知道其是否正确。对于错误的SQL查询语句,在执行时将会产生SQLException。
②一个Statement对象在同一时间只能打开一个结果集,对第二个结果集的打开隐含着对第一个结果集的关闭。
③如果想对多个结果集同时操作,必须创建出多个Statement对象,在每个Statement对象上执行SQL查询语句以获得相应的结果集。
④如果不需要同时处理多个结果集,则可以在一个Statement对象上顺序执行多个SQL查询语句,对获得的结果集进行顺序操作。
str="insertintocustomervalues('wangyang',24,'beijing','[email protected]')";
intrecordNumber=st.executeUpdate(str);执行executeUpdate()方法返回该SQL语句涉及的记录数。
str="select*frommycustomer";//查询表中记录
ResultSetrs=st.executeQuery(str);由于SQL语句是select,用executeQuery()方法,返回一个结果集保存在ResultSet对象rs中。
4、分析ResultSet对象
①执行完毕SQL语句后,将返回一个ResultSet类的对象,它包含所有的查询结果。但对ResultSet类的对象方式依赖于光标(Cursor)的类型,而对每一行中的各个列,可以按任何顺序进行处理(当然,如果按从左到右的顺序对各列进行处理可以获得较高的执行效率);
ResultSet类中的Course方式主要有:
ResultSet.TYPE_FORWARD_ONLY(为缺省设置):光标只能前进不能后退,也就是只能从第一个一直移动到最后一个。
ResultSet.TYPE_SCROLL_SENSITIVE:允许光标前进或后退并感应到其它ResultSet的光标的移动情形。
ResultSet.TYPE_SCROLL_INSENSITIVE:允许光标前进或后退并不能感应到其它ResultSet的光标的移动情形。
ResultSet类中的数据是否允许修改主要有:
ResultSet.CONCUR_READ_ONLY(为缺省设置):表示数据只能只读,不能更改。
ResultSet.CONCUR_UPDATABLE:表示数据允许被修改。
可以在创建Statement或PreparedStatement对象时指定ResultSet的这两个特性。
Statementstmt=con.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);

PreparedStatementpstmt=con.PrepareStatement("insertintobookTablevalues(?,?,?)",ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
②ResultSet类的对象维持一个指向当前行的指针,利用ResultSet类的next()方法可以移动到下一行(在JDBC中,Java程序一次只能看到一行数据),如果next()的返回值为false,则说明已到记录集的尾部。另外JDBC也没有类似ODBC的书签功能的方法。
③利用ResultSet类的getXXX()方法可以获得某一列的结果,其中XXX代表JDBC中的Java数据类型,如getInt()、getString()、getDate()等。访问时需要指定要检索的列(可以采用int值作为列号(从1开始计数)或指定列(字段)名方式,但字段名不区别字母的大小写)。
示例:
while(rs.next()){
intid=rs.getInt("id");
Stringname=rs.getString("cName");
intage=rs.getInt("cAge");
Stringaddress=rs.getString("cAddress");
Stringemail=rs.getString("cEmail");
System.out.println(id+""+name+""+age+""+address+""+email);
}
获得结果集中的结构信息:利用ResultSet类的getMetaData()方法来获得结果集中的一些结构信息(主要提供用来描述列的数量、列的名称、列的数据类型。利用ResulSetMetaData类中的方法)。
ResultsetMetaDatarsmd=rs.getMetaData();
rsmd.getColumnCount();//返回结果集中的列数
rsmd.getColumnLabel(1);//返回第一列的列名(字段名)
例如:
Statementstmt=con.createStatement();
ResultSetrs=stmt.executeQuery("select*fromTableName");
for(inti=1;i<=rs.getMetaData().getColumnCount();i++)//跟踪显示各个列的名称
{System.out.print(rs.getColumnName(i)+" ");
}
while(rs.next())
{//跟踪显示各个列的值
for(intj=1;j<=rs.getMetaData().getColumnCount();j++)
{System.out.print(rs.getObject(j)+" ");
}
}
5、关闭连接
(注意关闭的顺序)例:
rs.close();
st.close();
con.close()
6、JDBC的常用API
一、Connection接口:
1.createStatement():创建数据库连接
2.prepareStatement(Stringsql):创建预处理语句
3.prepareCall(Stringsql):创建可调用语句
4.getAutoCommit():获取自动提交的模式
5.setAutoCommit():设置自动提交的模式
6.commit():提交所执行的SQL语句
7.rollback():回滚所执行的SQL语句
8.getMetaData():获取一个DatabaseMetaData对象,该对象包含了有关数据库的基本信息
9.close():关闭数据库连接
10.isClose():判断数据库连接是否超时或被显示关闭
二、Statement接口:
1.execute(Stringsql):执行SQL语句,如果返回值是结果集则为true,否则为false
2.executeQuery(Stringsql):执行SQL语句,返回值为ResultSet
3.executeUpdate(Stringsql):执行SQL语句,返回值为所影响的行数
4.addBatch(Stringsql):向当前Statement对象的命令列表中添加新的批处理SQL语句
5.clearBatch():清空当前Statement对象的命令列表
6.executeBatch():执行当前Statement对象的批处理语句,返回值为每个语句所影响的函数数组
7.getConnection():返回创建了该Statement对象的Connection对象
8.getQueryTimeout():获取等待处理结果的时间
9.setQueryTimeout():设置等待处理结果的时间
三、ResultSet接口:
1.first()/beforeFirst():将游标移动到ResultSet中第一条记录(的前面)
2.last()/afterLast():将游标移动到ResultSet中最后一条记录(的后面)
3.absolute(intcolumn):将游标移动到相对于第一行的指定行,负数则为相对于最后一条记录
4.relative(introws):将游标移动到相对于当前行的第几行,正为向下,负为向上
5.next():将游标下移一行
6.previous():将游标上移一行
7.insertRow():向当前ResultSet和数据库中被插入行处插入一条记录
8.deleteRow():将当前ResultSet中的当前行和数据库中对应的记录删除
9.updateRow():用当前ResultSet中已更新的记录更新数据库中对应的记录
10.cancelUpdate():取消当前对ResultSet和数据库中所做的操作
11.findColumn(StringcolumnName):返回当前ResultSet中与指定列名对应的索引
12.getRow():返回ResultSet中的当前行号
13.refreshRow():更新当前ResultSet中的所有记录
14.getMetaData():返回描述ResultSet的ResultSetMetaData对象
15.isAfterLast():是否到了结尾
16.isBeforeFirst():是否到了开头
17.isFirst():是否第一条记录
18.isLast():是否最后一条记录
19.wasNull():检查列值是否为NULL值,如果列的类型为基本类型,且数据库中的值为0,那么
这项检查就很重要。由于数据库NULL也返回0,所以0值和数据库的NULL不能区分。如果列的类型为对象,可以简单地将返回值与null比较
20.close():关闭当前ResultSet
四、ResultSetMetaData接口:
1.getColumnCount():返回ResultSet中列的数目
2.getColumnName():返回列在数据库中的名称
3.getColumnType():返回列的SQL类型
4.isReadOnly():表示该数据项是否为只读值
5.isNullable():表示该列是否可以存储NULL

示例:

importjava.sql.*;

publicclassJDBCTest{

publicstaticvoidmain(String[]args){

//驱动程序名
Stringdriver="com.mysql.jdbc.Driver";

//URL指向要访问的数据库名scutcs
Stringurl="jdbc:mysql://127.0.0.1:3306/test";

//MySQL配置时的用户名
Stringuser="root";

//MySQL配置时的密码
Stringpassword="123456";

try{
//加载驱动程序
Class.forName(driver);

//连续数据库
Connectionconn=DriverManager.getConnection(url,user,password);

if(!conn.isClosed())
System.out.println("!");

//statement用来执行SQL语句
Statementstatement=conn.createStatement();

//要执行的SQL语句
Stringsql="select*frompet";

//结果集
ResultSetrs=statement.executeQuery(sql);

System.out.println("-----------------");


Stringname=null;

while(rs.next()){

//选择sname这列数据
name=rs.getString("name");

//首先使用ISO-8859-1字符集将name解码为字节序列并将结果存储新的字节数组中。
//然后使用GB2312字符集解码指定的字节数组
name=newString(name.getBytes("ISO-8859-1"),"GB2312");

//输出结果
System.out.println(rs.getString("ID")+" "+name);
}

rs.close();
conn.close();

}catch(ClassNotFoundExceptione){


System.out.println("Sorry,can`tfindtheDriver!");
e.printStackTrace();


}catch(SQLExceptione){


e.printStackTrace();


}catch(Exceptione){


e.printStackTrace();


}
}
}

⑨ 请问高手:如何用SQL语句获得数据表中所有关键字段的名称

我使用的是Delphi5.在Delphi自带的SQL
Explore
使用
SQL语句"select
*
from
syscolumns
"这条简单的语句的.如果创建数据库别名时数据库类型用MSSQL,即通过Micrsosoft
SQL
Server
2000与数据库连接,这时使用SQL语句"select
*
from
syscolumns
"返回的结果中包括"name"字段;如果创建数据库别名时数据库类型用SQL
Server,即通过ODBC数据源与数据库连接,这时使用SQL语句"select
*
from
syscolumns
"返回的结果中就不包括"name"字段,好像返回的记录数倒是相同.你们说奇不奇怪?用'sp_pkeys
tablename'也出现类似的现象:无'COLUMN_NAME'字段!与本地数据库连接,结果也是如此!不信吗?我试过好几台机子!!!
我之所以测试用ODBC与异地数据库进行连接是由于ODBC驱动程序是windows(Win2000)系统自带的,不需要额外再用专门的Micrsosoft
SQL
Server!请楼上的各位兄弟帮忙解决!

⑩ c/c++怎么连接数据库,并执行SQL语句

C++连接SQL数据库第一步 系统配置
1.设置SQLSERVER服务器为SQL登录方式,并且系统安全性中的sa用户要设置登录功能为“启用”,还有必须要有密码。
2.需要在ODBC中进行数据源配置,数据源选\”SQL SERVER”,登录方式使用“使用输入用户登录ID和密码的SQL SERVER验证”,并填写登录名(sa)和密码,注意一点,密码不能为空,这就意味着你的sa用户必须得有密码。否则无法通过系统本身的安全策略。测试通过就完成了配置。
C++连接SQL数据库第二步 C++与SQL连接初始化
1.在你所建立的C++项目中的stdafx.h头文件中引入ADO
具体代码如下
#import “c:\Program Files\Common Files\System\ado\msado15.dll”
no_namespace rename(”EOF”, “adoEOF”) rename(”BOF”, “adoBOF”)
2.定义_ConnectionPtr变量后调用Connection对象的Open方法建立与服务器的连接。
数据类型_ConnectionPtr实际上是由类模板_com_ptr_t得到的一个具体的实例类。_ConnectionPtr类封装了Connection对象的Idispatch接口指针及其一些必要的操作。可以通过这个指针操纵Connection对象。
例如连接SQLServer数据库,代码如下:
//连接到MS SQL Server
//初始化指针
_ConnectionPtr pMyConnect = NULL;
HRESULT hr = pMyConnect.CreateInstance(__uuidof(Connection));
if (FAILED(hr))
return;
//初始化链接参数
_bstr_t strConnect = “Provider=SQLOLEDB;
Server=hch;
Database=mytest;
uid=sa; pwd=sa;”; //Database指你系统中的数据库
//执行连接
try
{
// Open方法连接字串必须四BSTR或者_bstr_t类型
pMyConnect->Open(strConnect, “”, “”, NULL);
}
catch(_com_error &e)
{
MessageBox(e.Description(), “警告”, MB_OK|MB_ICONINFORMATION);
}//发生链接错误

C++连接SQL数据库第三步 简单的数据连接
//定义_RecordsetPtr变量,调用它Recordset对象的Open,即可打开一个数据集
//初始化过程 以下是个实例
_RecordsetPtr pRecordset;
if (FAILED(pRecordset.CreateInstance(__uuidof(Recordset))))
{
return;
}
//执行操作
try
{
pRecordset->Open(_variant_t(”userinfo”),
_variant_t((IDispatch*)pMyConnect),
adOpenKeyset, adLockOptimistic, adCmdTable);
}
catch (_com_error &e)
{
MessageBox(”无法打开userinfo表\”, “系统提示”,
MB_OK|MB_ICONINFORMATION);
}

C++连接SQL数据库第四步 执行SQL语句
这里是关键,我认为只要你懂点SQL语句那么一切都会方便许多比用上面的方法简单,更有效率点。
首先
m_pConnection.CreateInstance(_uuidof(Connection));
//初始化Connection指针
m_pRecordset.CreateInstance(__uuidof(Recordset));
//初始化Recordset指针
CString strSql=”select * from tb_goods”;//具体执行的SQL语句
m_pRecordset=m_pConnection->Execute(_bstr_t(strSql),
NULL, adCmdText);//将查询数据导入m_pRecordset数据容器
至此 你的SQL语句已经执行完成了m_pRecordset内的数据就是你执行的结果。
取得记录:
while(!m_pRecordset->adoEOF)//遍历并读取name列的记录并输出
{
CString temp = (TCHAR *)(_bstr_t)m_pRecordset->GetFields()->GetItem
(”name”)->Value;
AfxMessageBox(temp);
pRecordset->MoveNext();
}

插入记录
//记得初始化指针再执行以下操作
CString strsql;
strsql.Format(”insert into tb_goods(no,name, price)
values(’%d’,'%s’, %d)”,m_intNo,m_strName,m_intPrice);
m_pRecordset=m_pConnection->
Execute(_bstr_t(strsql),NULL,adCmdText);

修改记录
CString strsql;
strsql.Format(”update tb_goods set name=’%s’ ,
price=%d where no=%d “,m_strName,m_intPrice,m_intNo);
m_pRecordset=m_pConnection->Execute(_bstr_t(strsql),NULL,adCmdText);

删除记录
CString strsql;
strsql.Format(”delete from tb_goodswhere no= ‘%d’ “,m_intNo);
m_pRecordset=m_pConnection->Execute(_bstr_t(strsql),NULL,adCmdText)