Probleme mit SELECT COUNT auf MSSQL DB

  • Hallo,


    habe Probleme mit folgendem SELECT Statement (MSSQL.au3 ist included):

    [autoit]


    $sql = _SQLCon("IP", "USER", "PW", "DB")

    [/autoit][autoit][/autoit][autoit]

    $testvariable = _SQLQuery($sql, "select count (Spalte) from dbo.tabelle")

    [/autoit][autoit][/autoit][autoit]

    _SQLEnd($sql)

    [/autoit][autoit][/autoit][autoit][/autoit]


    Anschliessend steht einfach nichts in der variablen ($testvariable). Im SQL Management Studio geht die Abfrage prima...


    Mache ich auf gleiche Art und Weise einen INSERT:

    [autoit]

    _SQLQuery($sql, "insert into DB (test1, test2, test3) values ("&$test1&", '"&$test2&"', "&$test3&")")

    [/autoit]


    funktioniert alles.


    Wieso bekomme ich das Ergebnis des SELECT COUNT nicht in die Variable?


    ?(

  • hallo thhasseler,

    versuch es mal so:

    [autoit][/autoit][autoit][/autoit][autoit]

    $sql = _SQLCon("IP", "USER", "PW", "DB")

    [/autoit][autoit][/autoit][autoit]

    $testvariable = _SQLQuery($sql, "select count (Spalte) from tabelle")

    [/autoit][autoit][/autoit][autoit]

    _SQLEnd($sql)

    [/autoit][autoit][/autoit][autoit][/autoit]

    das dbo. mal weglassen ...

    hier ein beispiel, dass ich mal benutzt habe!

    [autoit][/autoit][autoit][/autoit][autoit]

    #include <mssql.au3>

    [/autoit][autoit][/autoit][autoit]

    $server = "xxxx"
    $user = "xxxxx"
    $pass = "xxxx"
    $db = "db"

    [/autoit][autoit][/autoit][autoit]

    $sql = _SQLCon($server, $user, $pass, $db)

    [/autoit][autoit][/autoit][autoit]

    $sQuery = "Select * From mitarbeiter WHERE loginname='horst'"

    [/autoit][autoit][/autoit][autoit]

    $var = _SQLQuery($sql, $sQuery)

    [/autoit][autoit][/autoit][autoit]

    With $var
    While Not .EOF
    MsgBox(0, 'Output', .Fields("loginname").value)
    .MoveNext
    WEnd
    EndWith
    _SQLEnd($sql)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]

    gruß gmmg

  • Hallo gmmg,


    das war´s leider nicht. Ich vermute, dass es etwas mit dem COUNT zu tun hat. Ich möchte einfach die Zeilen in einer bestimmten DB Tabelle zählen.


    Aber trotzdem vielen Dank für die ultraschnelle Antwort. :thumbup:


    Es liegt auch nicht am COUNT. habe mal ein anderes Select probiert:


    [autoit]

    $sQuery1 = "Select test from Tabelle where test = 123"

    [/autoit]


    Dieser Select muss 123 in die Variable schreiben, da dieser Wert in der DB vorhanden ist. Habs mit SQL Management Studio überprüft.


    Wieder nichts in der Variablen. man bekommt scheinbar das Ergebnis vom SLECT nicht in die Variable....


    Viele Grüsse


    THH

    Einmal editiert, zuletzt von thhasseler (12. April 2010 um 16:44)

  • achso, es geht nur das count nicht ...

    hab hier noch was auf unserem sql server gefunden ...

    [autoit][/autoit][autoit][/autoit][autoit]

    SELECT count(SPALTENNAME) as anzahl from TABELLE;

    [/autoit][autoit][/autoit][autoit]

    ; anzahl = hier wird ein feld mit diesem namen erzeugt

    [/autoit][autoit][/autoit][autoit]

    #include <mssql.au3>

    [/autoit][autoit][/autoit][autoit]

    $server = "xxxx"
    $user = "xxxxx"
    $pass = "xxxx"
    $db = "db"

    [/autoit][autoit][/autoit][autoit]

    $sql = _SQLCon($server, $user, $pass, $db)

    [/autoit][autoit][/autoit][autoit]

    $sQuery = "Select count(id) as anzahl from HTMLTemplate"

    [/autoit][autoit][/autoit][autoit]

    $var = _SQLQuery($sql, $sQuery)

    [/autoit][autoit][/autoit][autoit]

    With $var
    While Not .EOF
    ;MsgBox(0, 'Output', .Fields("loginname").value)
    MsgBox(0, 'Output', .Fields("anzahl").value)

    [/autoit][autoit][/autoit][autoit]

    .MoveNext
    WEnd
    EndWith
    _SQLEnd($sql)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]

    das funktioniert da auf jedenfall

    gruß gmmg

  • Hallo gmmg,


    es funzt....

    Hab noch folgendes geändert, dann war auch der Wert in der Variablen.


    [autoit]


    With $var
    While Not .EOF
    $var = (.Fields("anzahl").value)
    .MoveNext
    WEnd
    EndWith

    [/autoit]


    Vielen Dank für die schnelle Hilfe