'-----------------------------------------------
dim pkey as integer
dim cname as string
qryStr = ""
qryStr = qryStr & " UPDATE OR insert into " & vbCrLf
qryStr = qryStr & " INFO_CLIENT ( PKEY_CLIENT, CLIENT_NAME , CLIENT_TEL ) " & vbCrLf
qryStr = qryStr & " values ( 123 , 'TEST' , '010-1234-1234' ) " & vbCrLf
qryStr = qryStr & " MATCHING( PKEY_CLIENT ) " & vbCrLf
' qryStr = qryStr & " RETURNING PKEY_CLIENT, CLIENT_NAME; " & vbCrLf <--- 항상 0 이 나옴
qryStr = qryStr & " RETURNING PKEY_CLIENT; " & vbCrLf <---- 동작함.
If Not clsDb.fbReader.IsClosed Then clsDb.fbReader.Close()
clsDb.fbCmd.CommandText = qryStr
clsDb.fbCmd.CommandType = CommandType.Text
clsDb.fbCmd.Connection = clsDb.fbCon
Try
'ExecuteScalar 로 작업하면 리턴값 받아옴
pkey = clsDb.fbCmd.ExecuteScalar <--- 정상 동작함. 리턴값 1개 받아옴.
'ExecuteReader 로 작업하면 데이타가 없다고 함.
clsDb.fbReader = clsDb.fbCmd.ExecuteReader <---- 정상 동작함. (db에 쿼리 적용은 됨)
clsDb.fbReader.Read() <---- "There are no data to read" 에러 발생 - 값이 없다고 나옴.
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
'-----------------------------------------------
VB.NET 2010 , FB 2.5 , DOT.NETProvider-2.7.7-NET35 버전으로 작업중입니다.
ExecuteScalar 로 작업하면 RETURNING 구문이 동작합니다.
결과 값을 한개만 받을수 있음.
그런데 DataReader로 반환값을 받으려면 계속 "There are no data to read" 가 납니다.
여러값을 동시에 받을수가 없네요... 어떻게 해야 하나요?
감사합니다.
|