分享
 
 
 

ADO中sqlserver存储过程使用

王朝asp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

从ADO中得到多个记录集以及怎么样在ADO中使用sql server 的存储过程

DataType

Value

Length

Data Length

BIGINT

996857543543543

15

8

INT

543543

6

4

SMALLINT

32765

5

2

TINYINT

254

3

1

BIT

True

1

1

DECIMAL

765.5432321

11

9

NUMERIC

432.6544

8

5

MONEY

543.1234

6

8

SMALLMONEY

543.1234

6

4

FLOAT

5.4E+54

8

8

REAL

2.43E+24

9

4

DATETIME

8/31/2003 11:55:25 PM

19

8

SMALLDATETIME

8/31/2003 11:55:00 PM

19

4

CHAR

QWE

3

4

VARCHAR

Variable!

9

9

TEXT

307

NCHAR

WIDE

4

8

NVARCHAR

0

0

NTEXT

614

GUID

{58F94A80-B839-4B35-B73C-7F4B4D336C3C}

36

16

Return Value: 0

CREATE PROCEDURE "dbo"."DataTypeTester"

@myBigInt bigint

, @myInt int

, @mySmallint smallint

, @myTinyint tinyint

, @myBit bit

, @myDecimal decimal(10, 7)

, @myNumeric numeric(7, 4)

, @myMoney money

, @mySmallMoney smallmoney

, @myFloat float

, @myReal real

, @myDatetime datetime

, @mySmallDatetime smalldatetime

, @myChar char(4)

, @myVarchar varchar(10)

, @myText text

, @myNChar nchar(4)

, @myNVarchar nvarchar(10)

, @myNText ntext

, @myGuid uniqueidentifier

AS

SELECT 'BIGINT' "DataType", @myBigInt "Value" , LEN(@myBigInt) "Length" , DATALENGTH(@myBigInt) "Data Length"

SELECT 'INT' , @myInt , LEN(@myInt) , DATALENGTH(@myInt)

SELECT 'SMALLINT' , @mySmallint , LEN(@mySmallint) , DATALENGTH(@mySmallint)

SELECT 'TINYINT' , @myTinyint , LEN(@myTinyint) , DATALENGTH(@myTinyint)

SELECT 'BIT' , @myBit , LEN(@myBit) , DATALENGTH(@myBit)

SELECT 'DECIMAL' , @myDecimal , LEN(@myDecimal) , DATALENGTH(@myDecimal)

SELECT 'NUMERIC' , @myNumeric , LEN(@myNumeric) , DATALENGTH(@myNumeric)

SELECT 'MONEY' , @myMoney , LEN(CAST(@mySmallMoney as varchar)) , DATALENGTH(@myMoney)

SELECT 'SMALLMONEY' , @mySmallMoney , LEN(CAST(@mySmallMoney as varchar)) , DATALENGTH(@mySmallMoney)

SELECT 'FLOAT' , @myFloat , LEN(@myFloat) , DATALENGTH(@myFloat)

SELECT 'REAL' , @myReal , LEN(@myReal) , DATALENGTH(@myReal)

SELECT 'DATETIME' , @myDatetime , LEN(@myDatetime) , DATALENGTH(@myDatetime)

SELECT 'SMALLDATETIME' , @mySmallDatetime , LEN(@mySmallDatetime) , DATALENGTH(@mySmallDatetime)

SELECT 'CHAR' , @myChar , LEN(@myChar) , DATALENGTH(@myChar)

SELECT 'VARCHAR' , @myVarchar , LEN(@myVarchar) , DATALENGTH(@myVarchar)

SELECT 'TEXT' , '' , '' , DATALENGTH(@myText)

SELECT 'NCHAR' , @myNChar , LEN(@myNChar) , DATALENGTH(@myNChar)

SELECT 'NVARCHAR' , @myNVarchar , LEN(@myNVarchar) , DATALENGTH(@myNVarchar)

SELECT 'NTEXT' , '' , '' , DATALENGTH(@myNText)

SELECT 'GUID' , @myGuid , LEN(@myGuid) , DATALENGTH(@myGuid)

-- TODO: READTEXT should do this...

/*

, @myText "text"

, @myNText "ntext"

*/

RETURN(0)

Code:

ADO Parameter Test 3 / Multiple Recordset TesterA example of how to retrieve multiple recordsets from ADO and how to set parameters in ADO for SQL Server Stored Procedures"

ReDim allData(0) ' initialize array dimension

datetime = Now()

Response.Write titleString

Set conn = Server.CreateObject("ADODB.Connection")

Set cmd = Server.CreateObject("ADODB.Command")

conn.Open Application("connectionString")

With cmd

Set .ActiveConnection = conn

.CommandText = StoredProcedure

' always use ADO constants

.CommandType = adCmdStoredProc

' Check into the NamedParameters property at some point

' It doesn't require the order to be enforced, but it is always a good idea to enforce it anyway (for the documentation aspect of coding)

' RETURN parameter needs to be first

.Parameters.Append cmd.CreateParameter("RETURN", adInteger, adParamReturnValue, 4)

.Parameters.Append .CreateParameter("@myBigInt", adBigInt, adParamInput, 8, 996857543543543)

.Parameters.Append .CreateParameter("@myInt", adInteger, adParamInput, 4, 543543)

.Parameters.Append .CreateParameter("@mySmallint", adSmallInt, adParamInput, 2, 32765)

.Parameters.Append .CreateParameter("@myTinyint", adTinyInt, adParamInput, 1, 254)

.Parameters.Append .CreateParameter("@myBit", adBoolean, adParamInput, 4, True)

' Only Decimal and Numeric needs Precision and NumericScale

.Parameters.Append .CreateParameter("@myDecimal", adDecimal, adParamInput, 9, 765.5432321)

With .Parameters.Item("@myDecimal")

.Precision = 10

.NumericScale = 7

End With

Set prm = .CreateParameter("@myNumeric", adNumeric, adParamInput, 5, 432.6544)

prm.Precision = 7

prm.NumericScale = 4

.Parameters.Append prm

Set prm = Nothing

.Parameters.Append .CreateParameter("@myMoney", adCurrency, adParamInput, 8, 543.1234)

.Parameters.Append .CreateParameter("@mySmallMoney", adCurrency, adParamInput, 4, 543.1234)

.Parameters.Append .CreateParameter("@myFloat", adDouble, adParamInput, 8, 5.4E+54)

.Parameters.Append .CreateParameter("@myReal", adSingle, adParamInput, 4, 2.43E+24)

.Parameters.Append .CreateParameter("@myDatetime", adDBTimeStamp, adParamInput, 8, datetime)

.Parameters.Append .CreateParameter("@mySmallDatetime", adDBTimeStamp, adParamInput, 4, datetime)

.Parameters.Append .CreateParameter("@myChar", adChar, adParamInput, 4, "QWE")

.Parameters.Append .CreateParameter("@myVarchar", adVarchar, adParamInput, 10, "Variable!")

.Parameters.Append .CreateParameter("@myText", adLongVarChar, adParamInput, Len(titleString))

.Parameters.Item("@myText").AppendChunk titleString

.Parameters.Append .CreateParameter("@myNChar", adWChar, adParamInput, 4, "WIDE")

.Parameters.Append .CreateParameter("@myNVarchar", adVarWchar, adParamInput, 10, "")

.Parameters.Append .CreateParameter("@myNText", adLongVarWChar, adParamInput, Len(titleString))

.Parameters.Item("@myNText").AppendChunk titleString

' note the difference in these - without the {} the string implicitly converts

' the adVarChar version is of course commented out

'.Parameters.Append .CreateParameter("@myGuid", adVarChar, adParamInput, 36, "58F94A80-B839-4B35-B73C-7F4B4D336C3C")

.Parameters.Append .CreateParameter("@myGuid", adGUID, adParamInput, 16, "{58F94A80-B839-4B35-B73C-7F4B4D336C3C}")

Set rs = .Execute

'get column names

ReDim colNames(rs.Fields.Count - 1)

For i = 0 to rs.Fields.Count - 1

colNames(i) = rs.Fields.Item(i).Name

Next

Do While Not (rs Is Nothing)

' get initial recordset

If Not rs.EOF Then

' for retrieving more than about 30 or so recordsets you would probably want to use a collection

allData(UBound(allData)) = rs.GetRows(adGetRowsRest)

End If

' this will be nothing if no recordset is returned

Set rs = rs.NextRecordset

' resize array if needed

If Not (rs Is Nothing) Then ReDim Preserve allData(UBound(allData) + 1)

Loop

' must release the recordset before retrieving output parameters and/or the return value

ReleaseObj rs, True, True

ret = CStr(.Parameters.Item("RETURN").Value)

End With

ReleaseObj cmd, False, True

ReleaseObj conn, True, True

' show stored procedure

proc = GetStoredProcedureDefinition(StoredProcedure)

With Response

outputNamedGetRowsArray allData, colNames

.Write "

"

.Write "Return Value: " & ret & "

"

.Write "" & proc & "

"

End With

displayAspFile Server.MapPath("adodb.command3.asp")

Response.Write "

"

%

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有