Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1372to1376
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

SQL-Abfrage: Datentyp ermitteln

SQL-Abfrage: Datentyp ermitteln
12.08.2014 09:56:59
Hendrik
Hallöchen,
mit unten stehendem Code erzeuge ich ein Array, welches alle Spaltennamen einer SQL-Server-Tabelle enthällt. Klappt prima. Gibt es eine Möglichkeit, auch den Datentyp abzufragen (und in das Array als zweite Spalte aufzunehmen)?

Dim objConn As ADODB.Connection
Dim objRec As ADODB.Recordset
Dim strConnectionString As String
Dim strServer As String, strDb As String, strTab As String, strSQL As String
Dim j As Integer
On Error GoTo err1
strServer = glStrServer
strDb = glStrDb
strTab = glStrTab
strConnectionString = "Provider=MSDASQL.1;Driver=SQL Server;Server=" & strServer & "; _
Database=" & strDb & ";Trusted_Connection=Yes"
strSQL = "select top 1 * from " & strDb & "." & strTab
Set objConn = New ADODB.Connection
objConn.CommandTimeout = intAbfrageTimeOut
objConn.ConnectionString = strConnectionString
objConn.Open
Set objRec = New ADODB.Recordset
objRec.Open strSQL, objConn, adOpenStatic
If objRec.RecordCount = 1 Then
For j = 0 To objRec.Fields.Count - 1
ReDim Preserve strArrSpalten(j)
strArrSpalten(j) = LCase(objRec.Fields(j).Name)
Next j
End If
objConn.Close
On Error GoTo 0

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SQL-Abfrage: Datentyp ermitteln
12.08.2014 10:51:51
Tino
Hallo,
versuche es mal so, nicht getestet!
Der Type gibt den Wert zurück der dem DataTypeEnum entsprechend zugeordnet ist.
z. Bsp.:
DataTypeEnumWert
adDouble5
adInteger3

Dim objConn As ADODB.Connection
Dim objRec As ADODB.Recordset
Dim strConnectionString As String
Dim strServer As String, strDb As String, strTab As String, strSQL As String
Dim j As Integer
On Error GoTo err1
strServer = glStrServer
strDb = glStrDb
strTab = glStrTab
strConnectionString = "Provider=MSDASQL.1;Driver=SQL Server;Server=" & strServer & ";  _
Database=" & strDb & ";Trusted_Connection=Yes"
strSQL = "select top 1 * from " & strDb & "." & strTab
Set objConn = New ADODB.Connection
objConn.CommandTimeout = intAbfrageTimeOut
objConn.ConnectionString = strConnectionString
objConn.Open
Set objRec = New ADODB.Recordset
objRec.Open strSQL, objConn, adOpenStatic
If objRec.RecordCount = 1 Then
ReDim Preserve strArrSpalten(1 To objRec.Fields.Count, 1 To 2)
For j = 0 To objRec.Fields.Count - 1
strArrSpalten(j + 1, 1) = LCase(objRec.Fields(j).Name)
strArrSpalten(j + 1, 2) = objRec.Fields(j).Type
Next j
End If
objConn.Close
On Error GoTo 0
Gruß Tino

Anzeige
AW: SQL-Abfrage: Datentyp ermitteln
13.08.2014 11:08:59
Hendrik
Hallo Tino,
vielen Dank, es funktioniert. Mit dem Wert hätte ich so nichts anzufangen gewust, aber nun lasse ich durch eine weitere Funktion einfach aus dem DataType ein N oder A (nummerisch, alphanummerisch) erzeugen.
Schönen Dank.

21 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige