1
다음 코드 부분에서 매개 변수로 열 이름을 전달하여 열의 데이터 형식을 가져 오려고했습니다. 그러나 내 쿼리는 character varying, integer, text 등과 같이 정의 된 데이터 유형 대신 "unknown"값을 반환합니다. 물음표 (?) 대신 SQL 쿼리에 매개 변수 값을 직접 입력하면 원하는 값을 반환합니다. ("선택 pg_typeof (haendler_id) t_haendler 제한 1;"). 이 문제를 어떻게 해결할 수 있습니까?VBA, ADO.Connection 및 PostgreSQL pg_typeof()에 쿼리 매개 변수를 전달하는 방법
Sub PGTYPEOF()
Dim CN As New ADODB.Connection
Dim RS As New ADODB.Recordset
Dim CM As New ADODB.Command
Dim PM1 As New ADODB.Parameter
Dim strConn As String
Dim i, ItemVal As Variant
strConn = "Driver={PostgreSQL ODBC Driver(Unicode)};DSN=postgres;Server=localhost;
Port=5432;UID=postgres;PWD=###; Database=###;READONLY=0;PROTOCOL=6.4;FAKEOIDINDEX=0;
SHOWOIDCOLUMN=0; ROWVERSIONING=0;SHOWSYSTEMTABLES=1"
CN.Open strConn
i = "haendler_id"
With CM
.ActiveConnection = CN
.CommandText = "SELECT pg_typeof(?) from t_haendler limit 1;"
.CommandType = adCmdText
Set PM1 = .CreateParameter(, adVarChar, adParamInput, 30)
PM1.Value = i
.Parameters.Append PM1
Set RS = .Execute
End With
Do While Not RS.EOF
'Debug.Print RS.Fields(0).Value
ItemVal = RS.Fields(0).Value
RS.MoveNext
Loop
End Sub