当前位置:文档之家› VBA连接sqlserver数据库的常用函数

VBA连接sqlserver数据库的常用函数

VBA连接sqlserver数据库的常用函数
VBA连接sqlserver数据库的常用函数

VBA连接SQL SERVER数据库的常用函数库

数据库里的数据,怎么转到EXCEL里?

是不是必须要用数据库软件进行查询,然后打开一张表,再然后复制它们,贴到你的EXCEL文档里,再去进行后期加工处理?这将是多么费劲的一件事!

能不能让你的EXCEL直接去调取数据库里的数据?能不能让你的EXCEL打开时,能直接从数据库里调取最新的数据来更新你的文档?使用EXCEL-VBA编过简单编程,是否就能能直接连接数据库?

答案是肯定的!

其实EXCEL-VBA早就提供了直接连接到SQL SERVER数据库的方法,而且代码并不复杂。而这里更是只需要你复制下面的代码,就可以立即让你的EXCEL动起来,像一台终端设备那样时时刷新数据!

这些代码是本人经过多年使用VBA进行数据处理的实战经验,从海量的实用VBA函数中甄选出来的数据库处理通用函数,能极大提高数据处理工作的效率。

你要怎么做?

很简单,把以下代码保存到你的VBA里,把数据库参数修改成你自己的,然后你得做一步设置:从VBA编辑器的“工具——引用”里找到并勾选Microsort ActiveX Data Objects 2.0 Library,注意,这一步非常重要!保存后,就可以直接调用这些函数了。

把你刚刚写好的SQL直接作为一个sting类型参数,代进函数中试试吧,看看你的EXCEL 是怎样神奇的调取了SQL SERVER数据库中的表格的。

以下为代码:

————————————————代码开始—————————————————Option Explicit

Public Const USER = "sa" '这里改成你的数据库用户名

Public Const PASSWORD = "******" '这里改成你的密码

Public Const DATABASE = "aaaaa" '这里改成你的数据库名

Public Const SERVER = "192.168.1.100" '这里改成你的数据库服务器

'显示表格函数:根据SQL显示包含字段名的完整表格,指定显示在当前SHEET的第几行第几列,并可设定是否添加序号列,sort=0为不添加序号

Public Sub ShowTable(sql As String, Optional first_row As Long = 1, Optional first_column As Long = 1, Optional sort As Integer = 1)

Dim i As Long, j As Long, n As Long

Dim ar As Variant

Dim fd As Variant

Dim conn As New Connection

Dim rs As New Recordset

conn.Open "driver={sql server};uid=" & USER & ";pwd=" & PASSWORD & ";database=" & DATABASE & ";server=" & SERVER

rs.CursorLocation = adUseClient

rs.Open sql, conn, 1, 1

ReDim ar(0 To rs.RecordCount, rs.Fields.Count + 1)

'显示标题

j = 0

If sort = 1 Then '增加自动序号,需多设一列

ar(0, 0) = "序号"

For Each fd In rs.Fields

ar(0, j + 1) = rs.Fields(j).Name

j = j + 1

Next

Else '或者不设自动序号,也不必多设一列

For Each fd In rs.Fields

ar(0, j) = rs.Fields(j).Name

j = j + 1

Next

End If

'显示数据

i = 1

rs.MoveFirst

If sort = 1 Then '增加自动序号,需多设一列

Do While Not rs.EOF

ar(i, 0) = i

j = 0

For Each fd In rs.Fields

ar(i, j + 1) = rs.Fields(j)

j = j + 1

Next

i = i + 1

rs.MoveNext

Loop

Range(Cells(1, 1), Cells(rs.RecordCount + 1, rs.Fields.Count + 1)).Offset(first_row - 1, first_column - 1).Value = ar

Else '或者不设自动序号,也不必多设一列

Do While Not rs.EOF

j = 0

For Each fd In rs.Fields

ar(i, j) = rs.Fields(j)

j = j + 1

Next

i = i + 1

rs.MoveNext

Loop

Range(Cells(1, 1), Cells(rs.RecordCount + 1, rs.Fields.Count)).Offset(first_row - 1, first_column - 1).Value = ar

End If

rs.Close

conn.Close

End Sub

'显示表格内容函数:将sql指定的表的内容(不含字段名)显示在指定的页面,默认自动追加排序,在第2行第1列开始输出数据

Public Sub ShowTableContent(sql As String, Optional first_data_row As Long = 2, Optional first_data_column As Long = 1, Optional sort As Integer = 1)

Dim i As Long, j As Long, n As Long

Dim ar As Variant

Dim fd As Variant

Dim conn As New Connection

Dim rs As New Recordset

conn.Open "driver={sql server};uid=" & USER & ";pwd=" & PASSWORD & ";database=" & DATABASE & ";server=" & SERVER

rs.CursorLocation = adUseClient

rs.Open sql, conn, 1, 1

ReDim ar(1 To rs.RecordCount, rs.Fields.Count + 1)

'显示数据

i = 1

rs.MoveFirst

If sort = 1 Then '增加自动序号,需多设一列

Do While Not rs.EOF

ar(i, 0) = i

j = 0

For Each fd In rs.Fields

ar(i, j + 1) = rs.Fields(j)

j = j + 1

Next

i = i + 1

rs.MoveNext

Loop

Range(Cells(2, 1), Cells(rs.RecordCount + 1, rs.Fields.Count + 1)).Offset(first_data_row - 2, first_data_column - 1).Value = ar

Else '或者不设自动序号,也不必多设一列

Do While Not rs.EOF

j = 0

For Each fd In rs.Fields

ar(i, j) = rs.Fields(j)

j = j + 1

Next

i = i + 1

rs.MoveNext

Loop

Range(Cells(2, 1), Cells(rs.RecordCount + 1, rs.Fields.Count)).Offset(first_data_row - 2, first_data_column - 1).Value = ar

End If

rs.Close

conn.Close

End Sub

'把由单行结果的sql所保存的值存入一维数组函数,数组需提前定义

Public Function SingleArrayFromSql(sql As String, ByRef data As Variant) As Long Dim i As Long

Dim conn As New Connection

Dim rs As New Recordset

conn.Open "driver={sql server};uid=" & USER & ";pwd=" & PASSWORD & ";database=" & DATABASE & ";server=" & SERVER

rs.Open sql, conn, 1, 1

i = 1

rs.MoveFirst

Do While Not rs.EOF

data(i) = rs.Fields(0)

i = i + 1

rs.MoveNext

Loop

SingleArrayFromSql = i - 1

conn.Close

End Function

'从起始行起清除全部内容

Public Sub ClearRowsFrom(FirstLine As Long)

Rows(FirstLine & ":10000").ClearContents

End Sub

'从起始行起清除指定宽度的内容

Public Sub Clears(FirstLine As Long, LastColumn As Long)

Range(Cells(FirstLine, 1), Cells(10000, LastColumn)).ClearContents

End Sub

'数据库取值函数:由SQL获得和一个字段的第一个值,最好提供返回单字段唯一值的SQL,

以防返回结果不正确。

Public Function GetFirstValue(sql As String) As Variant

Dim conn As New Connection

Dim rs As New Recordset

conn.Open "driver={sql server};uid=" & USER & ";pwd=" & PASSWORD & ";database=" & DATABASE & ";server=" & SERVER

rs.Open sql, conn, 1, 1

GetFirstValue = rs.Fields(0).Value

conn.Close

End Function

'取得SQL结果的记录条数

Public Function GetRecordCount(sql As String) As Long

Dim conn As New Connection

Dim rs As New Recordset

conn.Open "driver={sql server};uid=" & USER & ";pwd=" & PASSWORD & ";database=" & DATABASE & ";server=" & SERVER

rs.CursorLocation = adUseClient

rs.Open sql, conn, 1, 1

GetRecordCount = rs.RecordCount

conn.Close

End Function

'取得SQL结果的字段数

Public Function GetFieldsCount(sql As String) As Long

Dim conn As New Connection

Dim rs As New Recordset

conn.Open "driver={sql server};uid=" & USER & ";pwd=" & PASSWORD & ";database=" & DATABASE & ";server=" & SERVER

rs.CursorLocation = adUseClient

rs.Open sql, conn, 1, 1

GetFieldsCount = rs.Fields.Count

conn.Close

End Function

'写表操作,所有增、删、改的操作,都用它完成!

Public Sub WriteTable(sql As String)

Dim conn As New Connection

Dim rs As New Recordset

conn.Open "driver={sql server};uid=" & USER & ";pwd=" & PASSWORD & ";database=" & DATABASE & ";server=" & SERVER

rs.Open sql, conn, 2, 3

conn.Close

End Sub

'保存整表到数据库

Public Sub SaveTable(tablename As String)

Dim line As Long, i As Long, j As Long

Dim sql As String, fieldnamelist As String

Dim fd As Variant

Dim fieldscount As Long

Dim conn As New Connection

Dim rs As New Recordset

conn.Open "driver={sql server};uid=" & USER & ";pwd=" & PASSWORD & ";database=" & DATABASE & ";server=" & SERVER

rs.Open "delete from " & tablename, conn, 2, 3

rs.Open "select * from " & tablename, conn, 1, 1

For Each fd In rs.Fields

fieldnamelist = fieldnamelist & https://www.doczj.com/doc/f66398222.html, & ", "

Next

fieldnamelist = Left(fieldnamelist, Len(fieldnamelist) - 2)

fieldscount = rs.Fields.Count

rs.Close

line = 3

Do While Cells(line, 3) <> ""

sql = "insert into " & tablename & "(" & fieldnamelist & ") values ("

For i = 2 To fieldscount

sql = sql & " '" & Cells(line, i) & "',"

Next

sql = sql & "'" & Cells(line, fieldscount + 1) & "')"

rs.Open sql, conn, 2, 3

line = line + 1

Loop

conn.Close

End Sub

————————————————代码结束—————————————————

citrix数据库连接操作手册

CitrixAppcenter无法连接到数据 库解决方法

Contents 简介 ................................................................................................................................... - 3 - 1、操作步骤.......................................................................................................................... - 3 - 2、标题2............................................................................................................................... - 5 - 3、标题3............................................................................................................................... - 5 - 4、标题4............................................................................................................................... - 5 - 5、标题5............................................................................................................................... - 5 - 6、标题6............................................................................................................................... - 5 -

SQLServer(多语句表值函数代码)

SQLServer(多语句表值函数代码) 代码如下: set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go CREATE FUNCTION [dbo].[ufnGetContactInformation](@ContactID int) RETURNS @retContactInformation TABLE ( -- Columns returned by the function [ContactID] int PRIMARY KEY NOT NULL, [FirstName] [nvarchar](50) NULL, [LastName] [nvarchar](50) NULL, [JobTitle] [nvarchar](50) NULL, [ContactType] [nvarchar](50) NULL ) AS -- Returns the first name, last name, job title and contact type for the specified contact. BEGIN

DECLARE @FirstName [nvarchar](50), @LastName [nvarchar](50), @JobTitle [nvarchar](50), @ContactType [nvarchar](50); -- Get common contact information SELECT @ContactID = ContactID, @FirstName = FirstName, @LastName = LastName FROM [Person].[Contact] WHERE [ContactID] = @ContactID; SET @JobTitle = CASE -- Check for employee WHEN EXISTS(SELECT * FROM [HumanResources].[Employee] e WHERE e.[ContactID] = @ContactID) THEN (SELECT [Title] FROM [HumanResources].[Employee] WHERE [ContactID] = @ContactID) -- Check for vendor

列举SQLServer几个基本的函数的应用.docx

-聚合函数 use pubs go select avg(distinct price) 一算平均数 from titles where type=*business' go use pubs go select max(ytd_sales) 一最大数 from titles go use pubs go select min(ytd_sales)"最小数 from titles go use pubs go select type,sum(price),sum(adva nee) —求和 from titles group by type order by type go use pubs go select count(distinct city) 一求个数 from authors go use pubs go select stdev(royalty) ■■返回给定表达式中所有值的统计标准偏差from titles go use pubs go select stdevp(royalty)-返回表达式中所有制的填充统计标准偏差

from titles go use pubs go select var(royalty)"返回所有值的统计方差 from titles go use pubs go select varp(royalty)-返回所有值的填充的统计方差 from titles go -数学函数 select sin(23.45),atan(1.234),rand(),PI(),sign(-2.34) 一其中rand 是获得一个随机数 -配置函数 SELECT @@VERSION 一获取当前数据库版本 SELECT @@LANGUAGE -当前语言 -时间函数 select getdate() as 'wawa_getdate' 一当前时间 select getutcdate() as !wawa_getutcdate' 一获取utc 时间 select day(getdate()) as 'wawa_day' 一取出天 select month(getdate()) as 'wawa_month' 一取岀月 select year(getdate()) as 'wawa_year' 一取出年 select dateadd(d,3,getdate()) as wawa_dateadd ?■力口三天,注意'd‘表示天,'m'表示月,yy表示年,下而一样 select datediff(d,*2004-07-01 *,*2004-07-15') as wawa_datediff 一计算两个时间的差 select datename(d,*2004-07-15!) as wawa_datename "取岀时间的某一部分select datepart(d,getdate()) as wawa_datepart 一取出时间的某一部分,和上面的那个差不多 "字符串函数 select ascii(123) as ,123',ascii('123') as ,H123m,ascii(,abc,) as H,abc M,一转换成ascii 码 select char(123),char(321 ),char(-123) ?■根据ascii 转换成字符 select lower('ABC'),lower('Abc'),upper('Abc'),upper('abc') 一转换大小写 select str(123.45,6,1), str(123.45,2,2) 一把数值转换成字符串

SQLSERVER操作命令

SQLSERVER数据库操作 ******操作前,请确定SQL的服务已经开启******** 一:登录进入sql数据库 1、开始---所有程序---Microsoft SQL Server 2005---SQL Server Management Studio Express 2、此时出现“连接到服务器”的对话框, “服务器名称”设置为SQL数据库所在机器的IP地址 “身份验证”设置为SQL Server身份验证或者Windows 身份验证 填写登录名和密码后,点击“连接”按钮,即可进入到SQL数据库操作界面。 二:新建数据库 登录进去后,右击“数据库”,选择—“新建数据库” 设置数据库名称,在下面的选项卡中还可以设置数据库的初始大小,自动增长,路径。 点击确定,一个数据库就建好了。 三:如何备份的数据库文件。 登录进入后,右击相应的需要备份数据库----选择“任务” 目标下的备份到,点击“添加”按钮可以设置备份数据库保存的路径。 四:如何还原备份的数据库文件。(以本地机器为例子) 1、设置服务器名称,点击右边的下拉框的三角,选择“浏览更多…”。 此时出现查找服务器对话框,选择“本地服务器”---点开“数据库引擎”前面 的三角---选中出现的服务器名称—确定。 (注:可以在“网络服务器”选项卡中设置网络服务器) 2、设置身份验证,选择为“windows身份验证” 3、点击连接按钮,进入数据库管理页面 4、右击“数据库”,选择“还原数据库”,出现还原数据库的对话框 还原的目标----目标数据库,这里设置数据库的名字 还原的源----选择“源设备”,在弹出的对话框中点击“添加”按钮,找到所备 份的数据库文件,确定。 5、此时,在还原数据库对话框中会出现所还原的数据库的信息。在前面选中所需还 原的数据库。确定。 6、为刚刚还原的数据库设置相应的用户。 a点开“安全性”---右击“登录名”---新建登录名 b 设置登录名(假如为admin),并设置为SQL Server身份验证,输入密码,去除 “强制实施密码策略”前的勾。 C 找到导入的数据库,右击此数据库----选择“属性”,在选择页中,点击“文件” 设置所有者,点击右边的按钮,选择“浏览”,找到相应的用户(如admin)。确 定。。 7、此时重新以admin的身份进入,就可操作相应的数据库。

SQL数据库操作步骤及代码

第2章数据库高级编程 ADO、NET就是为、NET框架而创建的,就是对ADO(ActiveX Data Objects)对象模型的扩充。ADO、NET提供了一组数据访问服务的类,可用于对Microsoft SQL Server、Oracle等数据源的一致访问。ADO、NET模型分为、NET Data Provider(数据提供程序)与DataSet数据集(数据处理的核心)两大主要部分。 、NET数据提供程序提供了四个核心对象,分别就是Connection、Command、DataReader 与DataAdapter对象。功能如表2-1所示。 表2-1 ADO、NET核心对象 2、1 SQL Server相关配置 在使用C#访问数据库之前,首先创建一个名为“chap2”的数据库,此数据库作为2、1节及2、2节中例题操作的默认数据库。然后创建数据表Products,表结构如表2-2所示。创建完毕后可录入初始化数据若干条。 表2-2 Products表表结构 上机课的操作中出现问题较多的地方。 1.身份验证方式 SQL Server 2012在安装时默认就是使用Windows验证方式的,但就是安装过后用户可随时修改身份验证方式。 启动SQL Server 2012 Management Studio,在“连接到服务器”对话框中选择“Windows

身份验证”连接服务器,连接成功后,在窗体左侧的“对象资源管理器”中右键单击服务器实例节点,并在弹出的快捷菜单中选择“属性”菜单项,系统将弹出“服务器属性”窗体,切换至“安全性”选项卡,如图2-1所示。 图2-1 “服务器属性”对话框-“安全性”选项卡 在“服务器身份验证”部分选择“SQL Server与Windows身份验证模式”选项,并单击【确定】按钮。系统将提示需要重新启动SQL Server以使配置生效,如图2-2所示。 图2-2 系统提示框 右键单击“对象资源管理器”的服务器实例节点,在弹出的快捷菜单中选择“重新启动”菜单项,SQL Server将重新启动服务,重启成功后即可使用混合验证方式登录SQL Server服务器。 2.添加登录账户 大部分初学者都习惯于使用SQL Server的系统管理员账号“sa”来登录数据库服务器,而在实际工作环境中使用sa账号登录服务器就是不合理的。因为很多情况下系统的数据库就是部署在租用的数据库服务器上的,此时数据库设计人员或编程人员都不可能具有sa账号的使用权限,因此在将身份验证方式修改为SQL Server与Windows混合验证后,需要为某应用程序创建一个专用的登录账户。其操作步骤描述如下。 (1)使用Windows身份验证登录SQL Server,在对象资源管理器中点击“安全性”节点前面的加号“+”,在展开后的“登录名”子节点上单击右键,如图2-3所示,并在弹出的快捷菜单中选择“新建登录名”选项。

sqlserver日期时间函数

sql server日期时间函数 Sql Server中的日期与时间函数 1. 当前系统日期、时间 select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值 例如:向日期加上2天 select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000 3. datediff 返回跨两个指定日期的日期和时间边界数。 select datediff(day,'2004-09-01','2004-09-18') --返回:17 4. datepart 返回代表指定日期的指定日期部分的整数。 SELECT DATEPART(month, '2004-10-15') --返回 10 5. datename 返回代表指定日期的指定日期部分的字符串 SELECT datename(weekday, '2004-10-15') --返回:星期五 6. day(), month(),year() --可以与datepart对照一下 select 当前日期=convert(varchar(10),getdate(),120) ,当前时间=convert(varchar(8),getdate(),114) select datename(dw,'2004-10-15') select 本年第多少周=datename(week,'2004-10-15') ,今天是周几=datename(weekday,'2004-10-15') 函数参数/功能 GetDate( ) 返回系统目前的日期与时间 DateDiff (interval,date1,date2) 以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1 DateAdd (interval,number,date) 以interval指定的方式,加上number之后的日期 DatePart (interval,date) 返回日期date中,interval指定部分所对应的整数值

C#常用数据库操作方法整理

C#常用操作数据方法整理 using System.Data.SqlClient; //导入sql数据库命名空间,这样可以用sql数据库操作相关类 String ConnectionStr = "server=.;database=数据库名;uid=sa;pwd=123456;"; //数据库连接字符串,server确定数据库服务器名,database定义数据库名,uid定义数据库使用者用户名,pwd为密码。 SqlConnection conn = new SqlConnection(ConnectionStr); //建立数据库连接,只有建立连接了才能操作数据。 //也可以合在一起:SqlConnection conn = new SqlConnection(“server=.;database=数据库名; uid=sa;pwd=123456;”); String SQLString=“”; //数据操作语句放在双引号中,语句有增,删,改,查操作。 SqlCommand comm = new SqlCommand(SQLString, conn); //建立数据库命令,确定sql数据操作语句,和数据库连接。 //也可以合并,SqlCommand comm = new SqlCommand(“数据库操作语句”, conn); conn.Open(); //打开数据库,只有打开数据库,数据库命令才能被执行。 int rows = comm.ExecuteNonQuery(); SqlDataReader dr = comm.ExecuteReader(); //专门用于读取数据库数据 Object result= comm. ExecuteScalar(); //或string result= Cmd. ExecuteScalar().Tostring(); //执行数据库命令: //ExecuteNonQuery()用于增,删,改操作,返回受影响的行数; //ExecuteReader()用于查操作,返回一个SqlDataReader类的对象; //comm.ExecuteScalar()执行查找,返回从数据表中查询结果的第一行第一个单元格的数据。conn.Close();

组态软件操作指南 与数据库连接

第八章与数据库连接 本章内容 创建数据源及数据库 创建表格模板 创建记录体 对数据库的操作 数据集函数在关系库中的应用 概述 本章我们将讲解如何将阀门的状态变化记录到数据库中并进行查询。数据库我们选择Access数据库,记录的内容包括:日期、时间、阀门描述、阀门状态四个字段。我们利用KingSCADA的SQL访问功能来实现。 KingSCADA SQL访问功能实现KingSCADA和其他外部数据库之间的数据传输。提供2种访问方式:一种是记录体的方式,即变量和数据库表中的字段建立绑定关系;一种是数据集方式。 记录体方式就是通过记录体配置项,实现把数据库里面的字段和KingSCADA的变量建立绑定关系。绑定后,可以通过SQL插入或更新函数将绑定变量插入或更新到数据库的对应字段中;也可以通过SQL查询函数将数据库中对应字段数据查询并保存到绑定变量中,实现KingSCADA和关系数据库的数据交互。记录体方式只能在KingSCADA服务器端应用。 数据集方式就是通过KingSCADA提供的一系列数据集函数,执行标准SQL语句,实现KingSCADA与关系数据库之间的增、查、删、改等所有数据交互功能,尤其可以通过数据集函数,实现从数据库内查询出符合SQL语句的数据集合,并在报表、曲线中进行批量数据展示。数据集方式支持在KingSCADA服务器端、C/S客户端、WEB上使用。 在这里建议采用数据集方式,更加方便、灵活。 下面具体介绍2种方式的具体使用 第一节记录体方式在关系数据库中的应用(仅参考) 一、创建数据源及数据库 以KingSCADA带的DEMO工程中的数据库为例,首先将文件从DEMO工程中拷贝到我们新建的这个培训工程中。 然后,用Windows控制面板中自带的ODBC Data Sources (32bit)管理工具新建一个Microsoft Access Driver(*.mdb)驱动的数据源,名为:mine,然后配置该数据源,指向刚才拷贝过来的Access数据库(即),如图8-1所示:

sqlserver常用函数

Sql Server 常用函数 1,统计函数avg, count, max, min, sum 2, 3,多数聚会不统计值为null的行。可以与distinct一起使用去掉重复的行。可以与group by 来分组4, 5, 2,数学函数 6, 7, SQRT 8, ceiling(n) 返回大于或者等于n的最小整数 9, floor(n), 返回小于或者是等于n的最大整数 10,round(m,n), 四舍五入,n是保留小数的位数 11,abs(n) 12,sign(n), 当n>0, 返回1,n=0,返回0,n<0, 返回-1 13,PI(), 3.1415.... 14,rand(),rand(n), 返回0-1之间的一个随机数 15,3,字符串函数 16, 17,ascii(), 将字符转换为ASCII码, ASCII('abc') = 97 18,char(), ASCII 码转换为字符 19,low(),upper() 20,str(a,b,c)转换数字为字符串。a,是要转换的字符串。b是转换以后的长度,c是小数位数。 str(123.456,8,2) = 123.46 21,ltrim(), rtrim() 去空格 22,left(n), right(n), substring(str, start,length) 截取字符串 23,charindex(子串,母串),查找是否包含。返回第一次出现的位置,没有返回0 24,patindex('%pattern%', expression) 功能同上,可是使用通配符 25,replicate('char', rep_time), 重复字符串 26,reverse(char),颠倒字符串 27,replace(str, strold, strnew) 替换字符串 28,space(n), 产生n个空行 29,stuff(), SELECT STUFF('abcdef', 2, 3, 'ijklmn') ='aijklmnef', 2是开始位置,3是要从原来串中删除的字符长度,ijlmn是要插入的字符串。 30,3,类型转换函数: 31, 32,cast, cast( expression as data_type), Example: 33,SELECT SUBSTRING(title, 1, 30) AS Title, ytd_sales FROM titles WHERE CAST(ytd_sales AS char(20)) LIKE '3%' 34,convert(data_type, expression) 35,4,日期函数 36, 37,day(), month(), year() 38,dateadd(datepart, number, date), datapart指定对那一部分加,number知道加多少,date指定在谁的基础上加。datepart的取值包括,

Access数据库连接的基本用法

在基于微软IIS/PWS的网络平台上,通过服务器端运行的ASP程序来访问后台数据库,是一种最常见的模式了。而对于小型的数据库应用需求,微软的Access数据库,应该是与ASP程序配套使用的首选。由于Access数据库的ODBC驱动程序支持的SQL指令全,执行效率高,所以Access后台数据库+ASP服务器端程序+客户端IE浏览器,是一个精练实用高效的组合模式。在这种使用模式中,ASP程序无疑是最重要的,是沟通客户端和后台数据库之间的桥梁。在ASP程序中,通过VB Script,建立对Access数据库连接,是客户能够访问后台数据库的前提。 一、Access数据库连接之建立Access数据库连接的常用方法 在ASP中建立对Access数据库连接的一般格式如下: 它的各步骤及参数意义如下: 第一行程序:利用Server对象的MapPath函数,取得要打开数据库的完整的文件路径,并存储在变量DbPath中。这其中,数据库名是我们需要指定的参数,应该用我们要打开的数据库的实际名称替代。如果数据库名是直接作为常量出现,要用引号将其括起来,并且不能丢掉扩展名。例如数据库是Test.mdb,则该行程序成为: DbPath=Server.MapPath(“Test.mdb”)。 第二行程序:建立一个ADO对象集中的Connection对象,也即连接对象。这是建立数据库连接的初始步骤。执行这行程序后,Conn成为一个连接对象。 第三行程序:利用连接对象Conn的Open方法打开一个指定的数据库。因为我们要打开的是Access数据库,所以要指定ODBC驱动程序参数,表示要透过Access的ODBC 驱动程序来访问数据库:driver={Microsoft Access Driver (*.mdb)};。 另一个参数dbq= & DbPath,运算后等效于dbq=Server.MapPath(数据库名) ,是利用了第一行的Server.MapPath(数据库名)函数,用来指定要打开的数据库文件。到这里,就已经打开了数据库名指定的数据库。如果数据库名是“test.mdb”,则打开Access数据库Test.mdb。在这一行里指定的参数,要严格按照格式原样写出,不能省略或改动,也没有可变参数。 第四行程序:建立一个ADO对象集中的Recordset对象,以便利用Recordset对象操作数据库(当然,这只是对数据库操作的多种方式之一)。执行这行后,rs就成为一个Recordset对象。

SQLSERVER函数大全

SQL SERVER函数大全 SQL SERVER命令大全 SQLServer和Oracle的常用函数对比 1.绝对值 S:select abs(-1) value O:select abs(-1) value from dual 2.取整(大) S:select ceiling(-1.001) value O:select ceil(-1.001) value from dual 3.取整(小) S:select floor(-1.001) value O:select floor(-1.001) value from dual 4.取整(截取) S:select cast(-1.002 as int) value O:select trunc(-1.002) value from dual 5.四舍五入 S:select round(1.23456,4) value 1.23460 O:select round(1.23456,4) value from dual 1.2346 6.e为底的幂 S:select Exp(1) value 2.7182818284590451 O:select Exp(1) value from dual 2.71828182 7.取e为底的对数 S:select log(2.7182818284590451) value 1 O:select ln(2.7182818284590451) value from dual; 1 8.取10为底对数 S:select log10(10) value 1 O:select log(10,10) value from dual; 1 9.取平方 S:select SQUARE(4) value 16 O:select power(4,2) value from dual 16

7种方法连接数据库

连接数据库的方法小结 1.ODBC API ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。 一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access , MYSQL还是Oracle数据库,均可用ODBC API 进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。 2.MFC ODBC 由于直接使用ODBC API编写应用程序要编制大量代码,开发者往往需要花费很多的精力在非核心代码的维护上,而Visual C++提供了MFC ODBC类,封装了ODBC API,这使得利用MFC ODBC来创建ODBC应用程序非常简便。 3.DAO(Data Access Object) DAO提供了一种通过程序代码创建和操纵数据库的机制,多个DAO构成一个体系结构,在这个体系结构中,各个DAO对象协同工作。MFC DAO是Microsoft提供的用于访问Microsoft jet数据库文件的强有力的数据库开发工具,它通过封装DAO,向程序员提供了DAO操作数据库的手段。 4.OLE DB OLE DB(Object Linking and Embedding, Database, 又称为OLE DB或OLE-DB),一个基于COM的数据存储对象,能提供对所有类型的数据的操作,甚至能在离线的情况下存取数据(比方说,你使用的是你的便携机,你可以毫不费力地看到最后一次数据同步时的数据映像). OLEDB位于ODBC层与应用程序之间. 在你的ASP页面里,ADO是位于OLEDB之上的应用程序. 你的ADO调用先被送到OLEDB,然后再交由ODBC 处理. 你可以直接连接到OLEDB层,如果你这么做了,你将看到服务器端游标(recordset的缺省的游标,也是最常用的游标)性能的提升.

sqlserver函数大全

在SQL Server在线图书或者在线帮助系统中,函数的可选参数用方括号表示。在下列的CONVERT()函数例子中,数据类型的length和style参数是可选的: CONVERT (data-type [(length)], expression[,style]) 可将它简化为如下形式,因为现在不讨论如何使用数据类型: CONVERT(date_type, expression[,style]) 根据上面的定义,CONVERT()函数可接受2个或3个参数。因此,下列两个例子都是正确的: SELECT CONVERT(Varchar(20),GETDATE()) SELECT CONVERT(Varchar(20),GETDATE(), 101) 这个函数的第一个参数是数据类型Varchar(20),第2个参数是另一个函数GETDATE()。GETDATE()函数用datetime数据类型将返回当前的系统日期和时间。第2条语句中的第3个参数决定了日期的样式。这个例子中的101指以mm/dd/yyyy格式返回日期。本章后面将详细介绍GETDATE()函数。即使函数不带参数或者不需要参数,调用这个函数时也需要写上一对括号,例如GETDATE()函数。注意在书中使用函数名引用函数时,一定要包含括号,因为这是一种标准形式。 确定性函数 由于数据库引擎的内部工作机制,SQL Server必须根据所谓的确定性,将函数分成两个不同的组。这不是一种新时代的信仰,只和能否根据其输入参数或执行对函数输出结果进行预测有关。如果函数的输出只与输入参数的值相关,而与其他外部因素无关,这个函数就是确定性函数。如果函数的输出基于环境条件,或者产生随机或者依赖结果的算法,这个函数就是非确定性的。例如,GETDATE()函数是非确定性函数,因为它不会两次返回相同的值。为什么要把看起来简单的事弄得如此复杂呢?主要原因是非确定性函数与全局变量不能在一些数据库编程对象中使用(如用户自定义函数)。部分原因是SQL Server缓存与预编译可执行对象的方式。例如,即席查询可以使用任何函数,不过如果打算构建先进的、可重用的编程对象,理解这种区别很重要。 以下这些函数是确定性的: ●?AVG()(所有的聚合函数都是确定性的) ●?CAST() ●?CONVERT() ●?DATEADD() ●?DATEDIFF() ●?ASCII() ●?CHAR() ●?SUBSTRING() 以下这些函数与变量是非确定性的: ●?GETDATE()

Java连接MySQL 数据库的正确操作流程

Java连接MySQL 数据库的正确操作流程 以下的文章主要介绍的是Java连接MySQL数据库(以MySQL数据库为例),我们主要是以MySQL数据库为例讲下Java正确连接MySQL数据库的实际操作流程,以下就是对其详细内容的描述。 当然,首先要安装有JDK(一般是JDK1.5.X)。然后安装MySQL,这些都比较简单,具体过程就不说了。配置好这两个环境后,下载JDBC驱动MySQL-connector-java-5.0.5.zip(这个是最新版的)。然后将其解压缩到任一目录。我是解压到D盘,然后将其目录下的MySQL-connector-java-5.0.5-bin.jar加到classpath里,具体如下: “我的电脑”-> “属性” -> “高级” -> “环境变量”,在系统变量那里编辑classpath,将D:\MySQL-connector-java-5.0.5\MySQL-connector-java-5.0.5-bin.jar加到最后,在加这个字符串前要加“;”,以与前一个classpath区分开。然后确定。 环境配置好了,很简单。现在,先配置MySQL,设其用户名为“root”,密码为“root”。在命令行或用一个SQL的前端软件创建Database。 我是用SQLyog的前端软件来创建Database的。 先创接MySQL 数据库: 1.CREATE DATABASE SCUTCS; 接着,创建表: 1.CREATE TABLE STUDENT 2.( 3.SNO CHAR(7) NOT NULL, 4.SNAME VARCHAR(8) NOT NULL, 5.SEX CHAR(2) NOT NULL, 6.BDATE DATE NOT NULL, 7.HEIGHT DEC(5,2) DEFAULT 000.00, 8.PRIMARY KEY(SNO) 9.); 然后插入数据,可以用SQL语句insert into <表名> values (value1, value2, ...); 也可以用SQLyog来操作 好了,创建好了。 下面,我们来编写.java文件来演示一下如何访问MySQL数据库。

SQLServer用户自定义函数详细介绍

SQL Server用户自定义函数 用户自定义函数不能用于执行一系列改变数据库状态的操作,但它可以像系统函数一样在查询或存储过程等的程序段中使用,也可以像存储过程一样通过EXECUTE 命令来执行。在 SQL Server 中根据函数返回值形式的不同将用户自定义函数分为三种类型: (1) 标量函数 标量函数返回一个确定类型的标量值,其返回值类型为除 TEXT 、 NTEXT 、IMAGE 、 CURSOR 、 TIMESTAMP 和 TABLE 类型外的其它数据类型。函数体语句定义 在 BEGIN-END 语句内。在 RETURNS 子句中定义返回值的数据类型,并且函数的最后一条语句必须为 Return 语句。创建标量函数的格式: Create Function 函数名(参数) Returns 返回值数据类型 [With {Encryption|Schemabinding}] [AS] BEGIN SQL 语句 ( 必须有 Return 子句 ) END 举例: ******************************************************************* CREATE FUNCTION dbo.Max ( @a int, @b int ) RETURNS int AS BEGIN DECLARE @max int IF @a>@b SET @max=@a ELSE SET @max=@b Return @max END *******************************************************************调用标量函数可以在 T-SQL 语句中允许使用标量表达式的任何位置调用返 回标量值(与标量表达式的数据类型相同)的任何函数。必须使用至少由两部分组成名称的函数来调用标量值函数,即架构名 . 对象名,如 dbo.Max(12,34) 。 (2) 内联表值函数 内联表值型函数以表的形式返回一个返回值,即它返回的是一个表。内联表 值型函数没有由 BEGIN-END 语句括起来的函数体。其返回的表是由一个位于RETURN 子句中的 SELECT 命令从数据库中筛选出来。内联表值型函数功能相当 于一个参数化的视图。

组态软件操作指引与数据库连接

` 与数据库连接第八章 本章容?创建数据源及数据库创建表格模板? 创建记录体? 对数据库的操作? 数据集函数在关系库中的应用? 概述数据库,本章我们将讲解如何将阀门的状态变化记录到数据库中并进行查询。数据库我们选择Access访问功能来实KingSCADA的SQL记录的容包括:日期、时间、阀门描述、阀门状态四个字段。我们利用现。种访问方式:提供2KingSCADAKingSCADA SQL访问功能实现和 其他外部数据库之间的数据传输。一种是记录体的方式,即变量和数据库表中的字段建立绑定关系;一种是数据集方式。的变量建立绑定关系。记录体方式就是通过记录体配置项,实现把数据库里面的字段和KingSCADASQLSQL插入或更新函数将绑定变量插入或更新到数据库的对应字段中;也可以通过绑定后,可以通过和关系数据库的数据交互。实现KingSCADA查询函数将数据库中对应字段数据查询并保存到绑定变量中,服务器端应用。记录体方式只能在KingSCADAKingSCADA语句,实现数据集方式就是通过KingSCADA提供的一系列数据集函数,执行标准SQL与关系数据库之间的增、查、删、改等所有数据交互功能,尤其可以通过数据集 函数,实现从数据库查询服务并在报表、语句的数据集合,曲线中进行批量数据展示。数据集方式支持在KingSCADA出符合SQL C/S客户端、WEB上使用。器端、在这里建议采用数据集方式,更加方便、灵活。下面具体介绍2种方式的具体使用第一节记录体方式在关系数 据库中的应用(仅参考)一、创建数据源及数据库工程中文件从DEMOmine.mdb带的DEMO工程中的mine.mdb数据库为例,首先将以KingSCADA 拷贝到我们新建的这个培训 工程中。Access Microsoft Sources (32bit)管理工具新建一个控制面板中自带的然后,用WindowsODBC Data 数据库(即,然后配置该数据源,指向刚才拷贝过来的AccessDriver(*.mdb)驱动的数据源,名为:mine 所示:8-1)mydb.mdb,如图文档Word `

SQLServer常用关键字数据类型和常用语法

SQL Server 2008 常用关键字、数据类型和常用语法 常用关键字: SQL server 2008一共大约有180多个关键字。简要分为主要关键字、辅助关键字和函数类关键字。本文就常用的这三类关键字进行语法说明和用例。 说明:1、比较好的习惯是,数据库名以D_开头,表名用T_开头,字段名以F_开头,这样可以防止和关键字重名。 2、如果确实用到了系统关键字,就要在关键上加[]方括号,以与关键字进行区别。例如有一个用户表被命名为USER,则查询该表内容的时候:SELECT * FROM USER语句是错误的,应该是SELECT * FROM [USER]。因为USER是关键字。

数据类型: SQL Server 2008一共有36种数据类型。具体如下:

常用语法: 一、数据库 【创建数据库】 CREATE DATABASE 【修改数据库】 ALTER DATABASE 【删除数据库】 DROP DATABASE 二、表结构 【创建数据表】 1、设定字段是允许空,非空、标识列,自增和主键约束。 CREATE TABLE T_CUSTOMER--表名 (CUSTOMERID INT IDENTITY(1,1),--客户ID,标识列,从开始,每次自增 COMPANYNAME NVARCHAR(50)NOT NULL,--,如果不显示指明NOT NULL,系统默认是允许空的USERNAME NVARCHAR(10)NOT NULL,--联系人姓名,非空 PHONENUMBER CHAR(11)NULL,--联系电话,允许为空 CONSTRAINT T_CUSTOMER_PrimaryKey PRIMARY KEY (CUSTOMERID))--设定USERID为主键,用括号括起来 /*每个单词之间是空格隔开,每个字段之间用单引号隔开,整个字段定义部分用括号括起来*/ /*T_RegUser_PrimaryKey是约束名*/ 2、设定字段是UNIQUEIDENTIFIER数据类型,唯一性约束,CHECK约束和默认值约束。

sqlserver日期函数

sqlserver日期函数 SQLServer时间日期函数详解,SQLServer,时间日期, 1. 当前系统日期、时间 select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返回新的datetime 值 例如:向日期加上2天 select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:0 0.000 3. datediff 返回跨两个指定日期的日期和时间边界数。 select datediff(day,'2004-09-01','2004-09-18') --返回:17 select datediff(day,'2004-09-18','2004-09-01') --返回:-17 4. datepart 返回代表指定日期的指定日期部分的整数。 SELECT DATEPART(month, '2004-10-15') --返回10 5. datename 返回代表指定日期的指定日期部分的字符串 SELECT datename(weekday, '2004-10-15') --返回:星期五 6. day(), month(),year() --可以与datepart对照一下 select 当前日期=convert(varchar(10),getdate(),120) ,当前时间=convert(varchar(8),getdate(),114) select datename(dw,'2004-10-15') select 本年第多少周=datename(week,'2004-10-15') ,今天是周几=datename(weekday,'2004-10-15') 函数参数/功能 GetDate( ) 返回系统目前的日期与时间 DateDiff (interval,date1,date2) 以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1 DateAdd (interval,number,date) 以interval指定的方式,加上number之后的日期 DatePart (interval,date) 返回日期date中,interval指定部分所对应的整数值DateName (interval,date) 返回日期date中,interval指定部分所对应的字符串名称 参数interval的设定值如下: 值缩写(Sql Server)(Access 和ASP) 说明 Year Yy yyyy 年1753 ~ 9999 Quarter Qq q 季1 ~ 4 Month Mm m 月1 ~ 12

相关主题
文本预览
相关文档 最新文档