Hallo Leute,
Ich habe ein kleines Query, welches auf dem MySQL-Server direkt wunderbar funktioniert, wenn ich es aber dann in eine String-Variable in VB zum parametrisieren packe, spuckt mir der MySQL-Server einen Syntax-Fehler aus.
Roh-SQL:
Dieser dann in VB:
Was aufällt ist, dass die Parameter in SingleQuotes gepackt wurden. MySQL erwartet dort doch
Kann ich überhaupt Tabellennamen parametrisieren?
Grüße!
Edit: Hab die
Ich habe ein kleines Query, welches auf dem MySQL-Server direkt wunderbar funktioniert, wenn ich es aber dann in eine String-Variable in VB zum parametrisieren packe, spuckt mir der MySQL-Server einen Syntax-Fehler aus.
Roh-SQL:
Dieser dann in VB:
VB.NET-Quellcode
- Public Function get_messwerte(ByVal _type As String, Optional ByVal _toolFilter As String = "none") As List(Of String)
- Dim iReturn As New List(Of String)
- Dim SQLString As String = ""
- Dim messtable As String = "", rautable As String = ""
- Dim trv() As String = {"Tool", "Rev", "Part"}
- If _toolFilter = "none" Then
- Select Case _type
- Case "3040"
- messtable = "3040_messdaten"
- rautable = "3040_rauheiten"
- Case "2121"
- messtable = "2121_messdaten"
- rautable = "2121_rauheiten"
- Case "2121C"
- messtable = "2121C_messdaten"
- rautable = "2121C_rauheiten"
- Case "3030"
- messtable = "3030_messdaten"
- rautable = "3030_rauheiten"
- Case Else
- Hilfssachen.ShowError(funcinfo.GetCurrentMethod.Name, "Falscher Bauteiltyp angegeben:" + CrLf + "_type = " + _type)
- iReturn.Clear()
- Return iReturn
- End Select
- End If
- SQLString = "SELECT m.TXLCode, m.ol1, m.ol2, m.ow1, m.ow2, " _
- + "m.r11, m.r12, m.r13, m.r21, m.r22, m.r23, " _
- + "m.r31, m.r32, m.r33, m.r41, m.r42, m.r43, " _
- + "r.lw, r.cw " _
- + "FROM @MessTable m, @RauTable r " _
- + "WHERE m.TXLCode LIKE 'GW101%' " _
- + "AND m.TXLCode = r.TXLCode"
- MessageBox.Show(SQLString)
- Try
- Using conn As New MySqlConnection(connectstring), cmd As New MySqlCommand(SQLString, conn)
- cmd.Parameters.AddWithValue("@MessTable", messtable)
- cmd.Parameters.AddWithValue("@RauTable", rautable)
- conn.Open()
- Dim reader As MySqlDataReader = cmd.ExecuteReader
- If reader.HasRows Then
- reader.Read()
- If _type = "3040" Or _type = "3030" Then
- trv = Hilfssachen.getToolRevPart(reader.Item("TXLCode").ToString)
- iReturn.Add(reader.Item("TXLCode").ToString)
- iReturn.Add(trv(0).ToString)
- iReturn.Add(trv(1).ToString)
- iReturn.Add(trv(2).ToString)
- iReturn.Add(reader.Item("ol1").ToString)
- iReturn.Add(reader.Item("ol2").ToString)
- iReturn.Add(reader.Item("ow1").ToString)
- iReturn.Add(reader.Item("ow2").ToString)
- iReturn.Add(reader.Item("r11").ToString)
- iReturn.Add(reader.Item("r12").ToString)
- iReturn.Add(reader.Item("r13").ToString)
- iReturn.Add(reader.Item("r21").ToString)
- iReturn.Add(reader.Item("r22").ToString)
- iReturn.Add(reader.Item("r23").ToString)
- iReturn.Add(reader.Item("r31").ToString)
- iReturn.Add(reader.Item("r32").ToString)
- iReturn.Add(reader.Item("r33").ToString)
- iReturn.Add(reader.Item("r41").ToString)
- iReturn.Add(reader.Item("r42").ToString)
- iReturn.Add(reader.Item("r43").ToString)
- iReturn.Add(reader.Item("lw").ToString)
- iReturn.Add(reader.Item("cw").ToString)
- ElseIf _type = "2121" Or _type = "2121C" Then
- trv = Hilfssachen.getToolRevPart(reader.Item("TXLCode").ToString)
- iReturn.Add(reader.Item("TXLCode").ToString)
- iReturn.Add(trv(0).ToString)
- iReturn.Add(trv(1).ToString)
- iReturn.Add(trv(2).ToString)
- iReturn.Add(reader.Item("ol").ToString)
- iReturn.Add(reader.Item("ow").ToString)
- iReturn.Add(reader.Item("r11").ToString)
- iReturn.Add(reader.Item("r12").ToString)
- iReturn.Add(reader.Item("r21").ToString)
- iReturn.Add(reader.Item("r22").ToString)
- iReturn.Add(reader.Item("r31").ToString)
- iReturn.Add(reader.Item("r32").ToString)
- iReturn.Add(reader.Item("r41").ToString)
- iReturn.Add(reader.Item("r42").ToString)
- iReturn.Add(reader.Item("lw").ToString)
- iReturn.Add(reader.Item("cw").ToString)
- End If
- End If
- reader.Close()
- End Using
- Catch ex As Exception
- Hilfssachen.ShowError(funcinfo.GetCurrentMethod.Name, ex.Message)
- End Try
- Return iReturn
- End Function
Was aufällt ist, dass die Parameter in SingleQuotes gepackt wurden. MySQL erwartet dort doch
`
anstatt '
, oder?Kann ich überhaupt Tabellennamen parametrisieren?
Grüße!
Edit: Hab die
reader.Item
-Bezeichner korrigiert.Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „hirnwunde“ ()