http://redrebel.egloos.com/1717186 <-예전에 올렸던 방법

고수님이 도와주셔서 제가 먼저 등록했던 방법을 고쳤습니다.
정말 깔끔하게 떨어지더군요^^;

구현하려고하는 기능과 해야될 조건들은 예전의 글을 참조하세염.

방법은 테이블하나를 더 추가하여 하나의 레코드에 하나의 컬럼만을 생성한다.

CREATE TABLE [dbo].[ex_no_TBL] (
[idx] [int]
GO

이테이블에 sp가 접근을 하는데 sp는 테이블의 레코드를 1씩증가시키며 6500 이 넘으면 다시 1로 바뀌는 역활을한다.

CREATE PROC [dbo].[get_fileno]
--로컬변수 선언
@TextMaxNum int output
as
set nocount on
begin tran
update ex_no_TBL set idx = (case when idx+1 > 6500  then 1 else idx+1 end)
select @TextMaxNum=idx from flashmall_user.dbo.ex04
commit tran
RETURN(@TextMaxNum)
GO

asp 페이지에서 sp를 호출한다음에 @TextMaxNum 를 리턴받는다.

Set cmd = server.CreateObject("ADODB.command")

With cmd
.ActiveConnection = db 'open된 db
.CommandType = 4             'adCmdStoredProc 입니다. sp 접근시... 1는 text입니다.
.CommandText = "get_fileno"
.Parameters.Refresh
.Execute
End With

dim file_no
file_no = cmd.Parameters("@TextMaxNum").Value 

sqlString = "insert into ex_TBL(c1,id) values("&file_no&",'"&id&"')"
db.execute sqlString

id 는 유저아이디입니다.
Posted by 빨강토끼
,