본문 바로가기
IT/VB6.0

DB에서 자동순번 필드의 현재 순번 구하기

by eplus 2024. 10. 3.

Table에 자동순번을 PK로 사용하는 경우가 많다.


** 자동순번 필드는 데이터를 넣으면 자동으로 번호가 증가된다.
** SQL-SERVER 는 필드속성 자체를 자동순번으로 정의할 수 있으나
    ORACLE은 시퀀스를 이용한다.


자동순번을 가진 Table이 하위의 Table을 가지고 있으면 그 하위 Table은
상위 Table의 순번을 가져와서 데이터를 저장하는 경우가 많다.
그때 상위 Table의 순번을 참조하는 기본적인 SQL 문은 다음과 같다.


-다 음-
    1) ORACLE : select SEQCUST.currval id from dual 
            ** SEQCUST 는 시퀀스
    2) SQL-SERVER :  select @@identity id
            ** 상위 Table에 데이터 저장 후 실행해야 한다.


** VB로 구현한 Module 


Public Function GetSystemSeq(ByRef Cn As ADODB.Connection, Optional sSeq As Variant) As Long
    '
    ' SQL-SERVER (iGblDB: 1)/ORACLE (iGblDB: 0) 시스템 순번 구하기

    '
    Dim sSql As String
    Dim RST As ADODB.Recordset
    '
    Dim iSeq As Long
    '
    If iGblDB = 0 Then
        sSql = "select " & CmyStrTrim(sSeq) & ".currval id from dual "
    Else
        sSql = "select @@identity id "
    End If
   
    Set RST = GetADORecordset(Cn, sSql)
    '
    iSeq = 0

    '
    If Not RST.EOF Then
        iSeq = CmyLng(RST("id"))
    End If

    '
    Call ReleaseADORecordset(RST)
    '
    GetSystemSeq = iSeq
    '
End Function



출처: www.erpplus.co.kr
728x90
반응형

'IT > VB6.0' 카테고리의 다른 글

웹서비스 설정  (0) 2024.10.06
폼 및 모듈내의 명령어 검색 프로그램  (0) 2024.10.05
SQL문 변환 (프로그램 소스로...)  (0) 2024.10.05
바코드 프린터 제어 프로그램  (0) 2024.10.03
VB6.0의 mscomm component 속성 등  (0) 2024.10.03