1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. HassanMullah

Beiträge von HassanMullah

  • Abfrage einer MS SQL 2008 DB mit Autoit

    • HassanMullah
    • 8. Mai 2013 um 15:50

    Ich glaub ich bin auf dem Holzweg ....

    Habe jetzt mal mit

    [autoit]

    Local $listview
    $rs = ObjCreate("ADODB.RecordSet")
    ;~ If $listview Then
    ;~ _GUICtrlListView_Destroy($listview)
    ;~ ConsoleWrite("Listview zerstört" & @CRLF)
    ;~ EndIf
    _GUICtrlListView_Destroy($listview)
    $listview = GUICtrlCreateListView("", 20, 190, $GUIWidth - 40, 520);,$LVS_SORTDESCENDING)
    $iColor = RGB2BGR(0xFFFFCC) ; Hintergrundfarbe Smartgelb
    _GUICtrlListView_SetBkColor($listview, $iColor)
    _GUICtrlListView_SetTextColor($listview, $CLR_BLACK)
    _GUICtrlListView_SetTextBkColor($listview, $iColor)

    [/autoit]


    versucht die Listview ohne Abfrage zu löschen (Zeile 7)
    Das Ergebnis ist jedoch gleich, d.h. die alten Spaltennamen tauchen immer wieder auf.
    Ich denke hier "denke ich falsch" ...

  • Unterscheidungsmerkmal zwischen ID (Zahl) und String

    • HassanMullah
    • 8. Mai 2013 um 15:26
    Zitat von Raupi

    Ich denke nicht das er es kapiert, im folgenden Thread hat ihm das chesstiger schon geschrieben ;)
    [ gelöst ] http://www.java.com/de/download/manual.jsp abfragen


    Raupi : Ich habe mich doch hier wieder daran erinnert. Bin halt manchmal nicht der Schnellste ;(

  • Abfrage einer MS SQL 2008 DB mit Autoit

    • HassanMullah
    • 8. Mai 2013 um 15:14

    Hallo zusammen,

    vielen Dank für Eure Bemühungen. Das ist mal wieder ein klassisches Layer 8 Problem :) (knock knock). Mein Kollege meinte auch, das ich das mit eine "left join" abbilden kann, aber

    1.) bin ich in ADO nicht fit
    2.) in SQL Statements genauso wenig

    d.h. ich muss mich mit meinen kleinen Knowhow begnügen.

    Momentan habe ich es so gelöst, das ich die 2. Selectabfrage in eine eigene Function gestellt habe, welche ich dann aufrufe. Somit bin ich offen für weitere Selects, die vermutlich noch kommen. Bestimmt nicht die feinste Art, aber für mich tut's das.

    Jetzt habe ich aber ein kleines kosmetisches Problem.

    Erst mal mein Code:

    Listview
    [autoit]

    Func Suche($Suchkategorie, $Suchbegriff)
    Local $listview
    $rs = ObjCreate("ADODB.RecordSet")
    If $listview Then
    _GUICtrlListView_Destroy($listview)
    ConsoleWrite("Listview zerstört" & @CRLF)
    EndIf

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

    $listview = GUICtrlCreateListView("", 20, 190, $GUIWidth - 40, 520);,$LVS_SORTDESCENDING)
    $iColor = RGB2BGR(0xFFFFCC) ; Hintergrundfarbe Smartgelb
    _GUICtrlListView_SetBkColor($listview, $iColor)
    _GUICtrlListView_SetTextColor($listview, $CLR_BLACK)
    _GUICtrlListView_SetTextBkColor($listview, $iColor)

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

    If $Suchkategorie = "Begleitscheinnummer" Then ;Suche nach Begleitscheinnummer
    $rs.Open("SELECT * FROM BEGLEITSCHEIN where BGSNR ='" & $Suchbegriff & "';", $conn)

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

    Local $Spalte01 = "BGS NR"
    Local $Spalte02 = "BGS ID"
    Local $Spalte03 = "STATUS"
    Local $Spalte04 = "ANGELEGT AM"
    Local $Spalte05 = "ANGELEGT DURCH"
    Local $Spalte06 = "DEAKTIVIERT AM"
    Local $Spalte07 = "DEAKTIVIERT DURCH"
    Local $Spalte08 = "GELÖSCHT AM"
    Local $Spalte09 = "GELÖSCHT DURCH"
    Local $Spalte10 = "RELEVANT"
    Local $Spalte11 = "STORNIERT"
    Local $Spalte12 = "SIGNIERBAR"
    Local $Spaltenanzahl = 12

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

    _GUICtrlListView_AddColumn($listview, $Spalte01, 50, 0)
    _GUICtrlListView_AddColumn($listview, $Spalte02, 50, 0)
    _GUICtrlListView_AddColumn($listview, $Spalte03, 50, 0)
    _GUICtrlListView_AddColumn($listview, $Spalte04, 50, 0)
    _GUICtrlListView_AddColumn($listview, $Spalte05, 50, 0)
    _GUICtrlListView_AddColumn($listview, $Spalte06, 50, 0)
    _GUICtrlListView_AddColumn($listview, $Spalte07, 50, 0)
    _GUICtrlListView_AddColumn($listview, $Spalte08, 50, 0)
    _GUICtrlListView_AddColumn($listview, $Spalte09, 50, 0)
    _GUICtrlListView_AddColumn($listview, $Spalte10, 50, 0)
    _GUICtrlListView_AddColumn($listview, $Spalte11, 50, 0)
    _GUICtrlListView_AddColumn($listview, $Spalte12, 50, 0)

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

    If $rs.RecordCount Then
    Local $Clipboard = ""
    While Not $rs.EOF
    Local $BGSNR = $rs.Fields("BGSNR").value
    Local $BEGLEITSCHEIN_ID = $rs.Fields("BEGLEITSCHEIN_ID").value
    Local $BEARBEITUNGSST = $rs.Fields("BEARBEITUNGSST").value
    Local $ANGELEGT_AM = $rs.Fields("ANGELEGT_AM").value
    Local $ANGELEGT_DURCH = $rs.Fields("ANGELEGT_DURCH").value
    Local $DEAKTIVIERT_AM = $rs.Fields("DEAKTIVIERT_AM").value
    Local $DEAKTIVIERT_DURCH = $rs.Fields("DEAKTIVIERT_DURCH").value
    Local $GELOESCHT_AM = $rs.Fields("GELOESCHT_AM").value
    Local $GELOESCHT_DURCH = $rs.Fields("GELOESCHT_DURCH").value
    Local $RELEVANT = $rs.Fields("RELEVANT").value
    Local $STORNIERT = $rs.Fields("STORNIERT").value
    Local $SIGNIERBAR = $rs.Fields("SIGNABLE").value

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

    If $ANGELEGT_AM > 1 Then
    _unix2win($ANGELEGT_AM)
    $ANGELEGT_AM = $datum
    EndIf

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

    If $ANGELEGT_DURCH Then
    SucheUser($ANGELEGT_DURCH)
    $ANGELEGT_DURCH = $Benutzername
    EndIf

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

    If $DEAKTIVIERT_AM > 1 Then
    _unix2win($DEAKTIVIERT_AM)
    $DEAKTIVIERT_AM = $datum
    EndIf

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

    If $DEAKTIVIERT_DURCH Then
    SucheUser($DEAKTIVIERT_DURCH)
    $DEAKTIVIERT_DURCH = $Benutzername
    EndIf

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

    If $GELOESCHT_AM > 1 Then
    _unix2win($GELOESCHT_AM)
    $GELOESCHT_AM = $datum
    EndIf

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

    If $GELOESCHT_DURCH Then
    SucheUser($GELOESCHT_DURCH)
    $GELOESCHT_DURCH = $Benutzername
    EndIf

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

    Local $Reihe = GUICtrlCreateListViewItem($BGSNR & "|" & $BEGLEITSCHEIN_ID & "|" & $BEARBEITUNGSST & "|" & $ANGELEGT_AM & "|" & $ANGELEGT_DURCH & "|" & $DEAKTIVIERT_AM & "|" & $DEAKTIVIERT_DURCH & "|" & $GELOESCHT_AM & "|" & $GELOESCHT_DURCH & "|" & $RELEVANT & "|" & $STORNIERT & "|" & $SIGNIERBAR, $listview)
    $Clipboard = ($Clipboard & $Spalte01 & ": " & $BGSNR & @CRLF & $Spalte02 & ": " & $BEGLEITSCHEIN_ID & @CRLF & $Spalte03 & ": " & $BEARBEITUNGSST & @CRLF & $Spalte04 & ": " & $ANGELEGT_AM & @CRLF & $Spalte05 & ": " & $ANGELEGT_DURCH & @CRLF & $Spalte06 & ": " & $DEAKTIVIERT_AM & @CRLF & $Spalte07 & ": " & $DEAKTIVIERT_DURCH & @CRLF & $Spalte08 & ": " & $GELOESCHT_AM & @CRLF & $Spalte09 & ": " & $GELOESCHT_DURCH & @CRLF & $Spalte10 & ": " & $RELEVANT & @CRLF & $Spalte11 & ": " & $STORNIERT & @CRLF & $Spalte12 & ": " & $SIGNIERBAR & @CRLF & @CRLF)
    $rs.MoveNext
    WEnd
    ClipPut("")
    ClipPut($Clipboard)

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

    EndIf

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

    For $i = 0 To $Spaltenanzahl - 1
    _GUICtrlListView_SetColumnWidth($listview, $i, $LVSCW_AUTOSIZE_USEHEADER)
    Next
    _GUICtrlListView_Scroll($listview, 0, 500)

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

    $rs.Close
    EndIf

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

    If $Suchkategorie = "Begleitschein ID" Then
    If Not StringRegExp($Suchbegriff, "^\d+$") Then ; .. Text enthalten
    $str = $Suchbegriff
    $line = _StringBetween($str, '("', '");')
    $Suchbegriff = $line[0]
    Else
    ;ConsoleWrite("Zahl vorhanden" & @CRLF)
    EndIf

    $rs.Open("SELECT * FROM BEGLEITSCHEIN where BEGLEITSCHEIN_ID =" & $Suchbegriff & ";", $conn)

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

    Local $Spalte01 = "BGS NR"
    Local $Spalte02 = "BGS ID"
    Local $Spalte03 = "STATUS"
    Local $Spalte04 = "ANGELEGT AM"
    Local $Spalte05 = "ANGELEGT DURCH"
    Local $Spalte06 = "DEAKTIVIERT AM"
    Local $Spalte07 = "DEAKTIVIERT DURCH"
    Local $Spalte08 = "GELÖSCHT AM"
    Local $Spalte09 = "GELÖSCHT DURCH"
    Local $Spalte10 = "RELEVANT"
    Local $Spalte11 = "STORNIERT"
    Local $Spalte12 = "SIGNIERBAR"
    Local $Spaltenanzahl = 12

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

    _GUICtrlListView_AddColumn($listview, $Spalte02, 50, 0)
    _GUICtrlListView_AddColumn($listview, $Spalte01, 50, 0)
    _GUICtrlListView_AddColumn($listview, $Spalte03, 50, 0)
    _GUICtrlListView_AddColumn($listview, $Spalte04, 50, 0)
    _GUICtrlListView_AddColumn($listview, $Spalte05, 50, 0)
    _GUICtrlListView_AddColumn($listview, $Spalte06, 50, 0)
    _GUICtrlListView_AddColumn($listview, $Spalte07, 50, 0)
    _GUICtrlListView_AddColumn($listview, $Spalte08, 50, 0)
    _GUICtrlListView_AddColumn($listview, $Spalte09, 50, 0)
    _GUICtrlListView_AddColumn($listview, $Spalte10, 50, 0)
    _GUICtrlListView_AddColumn($listview, $Spalte11, 50, 0)
    _GUICtrlListView_AddColumn($listview, $Spalte12, 50, 0)

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

    If $rs.RecordCount Then
    Local $Clipboard = ""
    While Not $rs.EOF
    Local $BGSNR = $rs.Fields("BGSNR").value
    Local $BEGLEITSCHEIN_ID = $rs.Fields("BEGLEITSCHEIN_ID").value
    Local $BEARBEITUNGSST = $rs.Fields("BEARBEITUNGSST").value
    Local $ANGELEGT_AM = $rs.Fields("ANGELEGT_AM").value
    Local $ANGELEGT_DURCH = $rs.Fields("ANGELEGT_DURCH").value
    Local $DEAKTIVIERT_AM = $rs.Fields("DEAKTIVIERT_AM").value
    Local $DEAKTIVIERT_DURCH = $rs.Fields("DEAKTIVIERT_DURCH").value
    Local $GELOESCHT_AM = $rs.Fields("GELOESCHT_AM").value
    Local $GELOESCHT_DURCH = $rs.Fields("GELOESCHT_DURCH").value
    Local $RELEVANT = $rs.Fields("RELEVANT").value
    Local $STORNIERT = $rs.Fields("STORNIERT").value
    Local $SIGNIERBAR = $rs.Fields("SIGNABLE").value

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

    If $ANGELEGT_AM > 1 Then
    _unix2win($ANGELEGT_AM)
    $ANGELEGT_AM = $datum
    EndIf

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

    If $ANGELEGT_DURCH Then
    SucheUser($ANGELEGT_DURCH)
    $ANGELEGT_DURCH = $Benutzername
    EndIf

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

    If $DEAKTIVIERT_AM > 1 Then
    _unix2win($DEAKTIVIERT_AM)
    $DEAKTIVIERT_AM = $datum
    EndIf

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

    If $DEAKTIVIERT_DURCH Then
    SucheUser($DEAKTIVIERT_DURCH)
    $DEAKTIVIERT_DURCH = $Benutzername
    EndIf

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

    If $GELOESCHT_AM > 1 Then
    _unix2win($GELOESCHT_AM)
    $GELOESCHT_AM = $datum
    EndIf

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

    If $GELOESCHT_DURCH Then
    SucheUser($GELOESCHT_DURCH)
    $GELOESCHT_DURCH = $Benutzername
    EndIf

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

    Local $Reihe = GUICtrlCreateListViewItem($BEGLEITSCHEIN_ID & "|" & $BGSNR & "|" & $BEARBEITUNGSST & "|" & $ANGELEGT_AM & "|" & $ANGELEGT_DURCH & "|" & $DEAKTIVIERT_AM & "|" & $DEAKTIVIERT_DURCH & "|" & $GELOESCHT_AM & "|" & $GELOESCHT_DURCH & "|" & $RELEVANT & "|" & $STORNIERT & "|" & $SIGNIERBAR, $listview)
    $Clipboard = ($Clipboard & $Spalte02 & ": " & $BEGLEITSCHEIN_ID & @CRLF & $Spalte01 & ": " & $BGSNR & @CRLF & $Spalte03 & ": " & $BEARBEITUNGSST & @CRLF & $Spalte04 & ": " & $ANGELEGT_AM & @CRLF & $Spalte05 & ": " & $ANGELEGT_DURCH & @CRLF & $Spalte06 & ": " & $DEAKTIVIERT_AM & @CRLF & $Spalte07 & ": " & $DEAKTIVIERT_DURCH & @CRLF & $Spalte08 & ": " & $GELOESCHT_AM & @CRLF & $Spalte09 & ": " & $GELOESCHT_DURCH & @CRLF & $Spalte10 & ": " & $RELEVANT & @CRLF & $Spalte11 & ": " & $STORNIERT & @CRLF & $Spalte12 & ": " & $SIGNIERBAR)
    $rs.MoveNext
    WEnd
    ClipPut("")
    ClipPut($Clipboard)

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

    EndIf

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

    For $i = 0 To $Spaltenanzahl - 1
    _GUICtrlListView_SetColumnWidth($listview, $i, $LVSCW_AUTOSIZE_USEHEADER)
    Next
    _GUICtrlListView_Scroll($listview, 0, 500)
    $rs.Close
    EndIf
    EndFunc ;==>Suche

    [/autoit]


    In Zeile 9 erstelle ich eine Listview.
    Wenn ich jetzt z.B. eine Abfrage auf "Begleitschein ID" (Zeile 109) mache, dann wird ja in Zeile 133 bis 144 die Spaltenname der Listview erzeugt. Soweit alles gut.
    Sobald ich jedoch dann von der Abfrage "Begleitschein ID" auf die Abfrage "Begleitscheinnummer" (Zeile 15) wechsle, werden von Zeile 32 bis 43 die Spaltennamen neu aufgebaut.
    Es ändert sich eigentlich auch nur die Reihenfolge der ersten beiden Spalten, der Rest bleibt gleich. Auch bis hierher passt es - fast
    Mir ist dann aufgefallen, das die "neuen" Spaltennamen etwas komisch aussehen (zusammengeschrumpft). Nach kurzer Analyse viel mir auf, das wenn ich mit der Maus über den Namen von Spalte 1 fahre, der "alte" Spaltenname von der Abfrage auf "Begleitschein ID" wieder zum Vorschein kommt.

    Ich habe dann die Hilfe mal durchstöbert und wollte jetzt folgendes machen. Bevor ich die Listview aufbaue, wollte ich prüfen, ob eine alte Listview existiert. Wenn ja, dann "zerstören".
    Dafür war eigentlich Zeile 4 bis 7 gedacht. Auf Grund des Consolwrite in Zeile 6 wollte ich prüfen, ob die If Abfrage wahr ist, was aber nicht der Fall ist, d.h. meine Listview welche ursprünglich in Zeile 9 erstellt wurde, wird nicht zerstört.

    Warum wird die Listview nicht gefunden, bzw. was ist der richtige Ansatz, damit sowas nicht passiert.

    vielen Dank und vorab schon mal einen schönen Vatertag :party:

  • Unterscheidungsmerkmal zwischen ID (Zahl) und String

    • HassanMullah
    • 7. Mai 2013 um 16:52

    Einen kleinen Hänger habe ich noch. Hier der Code

    [autoit]

    If Not StringRegExp($Suchbegriff, "^\d+$") Then ; .. Text enthalten
    ConsoleWrite("Text vorhanden" & @CRLF)
    $str = $Suchbegriff
    ConsoleWrite("str = " & $str & @CRLF)
    $line = _StringBetween($str, '("', '");')
    ConsoleWrite("line = " & $line & @CRLF)
    $Suchbegriff = $line
    ConsoleWrite("$Suchbegriff innen = " & $Suchbegriff & @CRLF)
    Else
    ;ConsoleWrite("Zahl vorhanden" & @CRLF)
    EndIf
    ConsoleWrite("$Suchbegriff = " & $Suchbegriff & @CRLF)

    [/autoit]

    und hier die Ausgabe in der Console:

    Code
    --> Press Ctrl+Alt+F5 to Restart or Ctrl+Break to Stop
    Text vorhanden
    str = javascript:editBegleitschein("2760682");
    line = 
    $Suchbegriff innen = 
    $Suchbegriff =

    Irgendwas passt mit meiner 5. Zeile nicht. Das Ergebnis soll ja 2760682 sein, aber bei mir ist die Variable leer :(

    Nachtrag: Ich habs gefunden. Es ist ja ein Array also

    [autoit]

    $line = _StringBetween($str, '("', '");')
    ConsoleWrite("line = " & $line[0] & @CRLF)
    $Suchbegriff = $line[0]

    [/autoit]
  • Abfrage einer MS SQL 2008 DB mit Autoit

    • HassanMullah
    • 7. Mai 2013 um 13:56

    Sorry Dietmar,

    das check ich nicht. Ist das sowas ähnliches wie ein Join ?

    Ich will einfach einen 2. eigenständigen Select machen, weiß aber nicht, ob ich hier nochmals ein 2. Objekt öffnen muss, oder wie man hier vorgeht.

  • Abfrage einer MS SQL 2008 DB mit Autoit

    • HassanMullah
    • 7. Mai 2013 um 13:17

    So Freunde der Nacht, es geht langsam aber sicher weiter :)

    Da ich kein ADO Experte bin, bitte ich hier mal um Hilfe.

    Kurzfassung:

    [autoit]

    $conn = ObjCreate("ADODB.Connection");
    $DSN = .... "Anmeldedaten am Server";
    $conn.Open($DSN) ; Verbindung wird aufgebaut

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

    $rs = ObjCreate("ADODB.RecordSet");
    $rs.Open("SELECT * FROM BEGLEITSCHEIN where BGSNR ='" & $Suchbegriff & "';", $conn); ab hier habe ich mein Suchergebnis

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

    If $rs.RecordCount Then
    While Not $rs.EOF
    ;..... hier bestücke ich die Listview

    [/autoit]


    Ich habe jetzt das Problem, das ich innerhalb der While Not Schleife einen zweite SELECT machen muss, wo ich eine ID aus dem ersten SELECT in einer anderen Tabelle suchen will.
    Alle bisherigen Versuche gingen bisher schief.

    Ich darf ja das Ergebnis von

    [autoit]

    $rs.Open("SELECT * FROM BEGLEITSCHEIN where BGSNR ='" & $Suchbegriff & "';", $conn); ab hier habe ich mein Suchergebnis

    [/autoit]

    nicht verändern

    Wie stellt man dass den an ?

    Gruss und Danke

  • Unterscheidungsmerkmal zwischen ID (Zahl) und String

    • HassanMullah
    • 7. Mai 2013 um 11:07

    Hallo,

    ich stehe gerade von folgendem kleine Problem. Ich habe in meiner GUI ein Inputfeld, welches im Normalfall eine Zahl (Datenbank ID) beinhalten sollte, d.h. der Anwender könnte die Zahl direkt eintippen.
    Es gibt jedoch die Möglichkeit in der Webanwendung den Link mit der ID zu kopieren. Das sieht dann z.B. so aus

    "javascript:editBegleitschein("2782842");"

    Das extrahieren der ID kann ich ja mit StringInString erledigen, was mich aber interessiert ist die vorherige Abfrage.

    Also

    If String vom Type Zahl, dann mach nichts, ansonsten "Hole String aus String"

    Wie prüfe ich, ob eine Zahl oder ein Text eingetragen wurde ?

    Vielen Dank

  • Abfrage einer MS SQL 2008 DB mit Autoit

    • HassanMullah
    • 6. Mai 2013 um 09:52

    Hallo misterspeed,

    Danke erst mal. Bin diese Woche etwas zu, aber sobald ich mich wieder daran setzen kann, melde ich meine Erfolge (oder Misserfolge :)

  • Abfrage einer MS SQL 2008 DB mit Autoit

    • HassanMullah
    • 3. Mai 2013 um 16:00

    Hi misterspeed,

    erst mal Danke für die Info. Habe jetzt ein wenig rumprobiert. Zum testen bin ich mal auf eine andere Tabelle mit wenige Einträgen gegangen.
    Mein Code:

    [autoit]

    $rs.Open("SELECT * FROM TEILNEHMERTYP", $conn, 1, 3)
    MsgBox(0,"RecordCount",$rs.RecordCount)
    For $i=0 to $rs.RecordCount - 1
    MsgBox(0, "Name", $rs($i).name)
    Next

    [/autoit]


    So sieht die Tabelle im Squirell gerade aus:
    [Blockierte Grafik: http://www.hasenmueller.de/files4forum/Bild-004-2013-05-03.jpg]
    d.h. 3 Spalten a 5 Reihen.
    Über das Script bekomme ich via

    [autoit]

    MsgBox(0,"RecordCount",$rs.RecordCount)

    [/autoit]

    raus, das es 5 Reihen sind.
    Die 3 Spalten sind meine Unbekannte, die ich gerne wissen will.
    Mit dem Teil

    [autoit]

    For $i=0 to $rs.RecordCount - 1
    MsgBox(0, "Name", $rs($i).name)
    Next

    [/autoit]

    bekomme ich dann die 3 Spaltenname angezeigt, aber auch 2 leere Messageboxen, von daher finde ich das Suboptimal.
    Ich habe in Squirell jedoch folgendes entdeckt
    [Blockierte Grafik: http://www.hasenmueller.de/files4forum/Bild-005-2013-05-03.jpg]
    Gibt es eine Möglichkeit die Metadaten abzufragen. Hier steht ja eigentlich alles drin, was mich erst mal interssiert.

  • Abfrage einer MS SQL 2008 DB mit Autoit

    • HassanMullah
    • 3. Mai 2013 um 14:00

    OK, es geht weiter :)
    Ich habe jetzt angefangen eine GUI zu bauen. Die Verbindung zu den unterschiedlichen MSSQL Servern steht, jedoch bin ich leider mit den ADO noch gar nicht fit, sodass ich gerade vor folgendem Problem stehe.
    Auf Grund von verschiedenen Comboboxen und Inputfeldern wird über einen Button eine Suche ausgelöst, die auch funktioniert
    Hier mal der Code

    So suche ich zur Zeit
    [autoit]

    Func Suche($Suchkategorie, $Suchbegriff)
    $rs = ObjCreate("ADODB.RecordSet")
    If $Suchkategorie = "Begleitscheinnummer" Then ;Suche nach Begleitscheinnummer
    $rs.Open("SELECT * FROM BEGLEITSCHEIN where BGSNR ='" & $Suchbegriff & "';", $conn)
    If $rs.RecordCount Then
    While Not $rs.EOF
    ConsoleWrite("Begleitschein mit der Nummer: " & $rs.Fields("BGSNR").value & " hat folgende ID: " & $rs.Fields("BEGLEITSCHEIN_ID").value & @CRLF)
    $rs.MoveNext
    WEnd
    EndIf
    $rs.Close
    EndIf

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

    If $Suchkategorie = "Begleitschein ID" Then;Suche nach Begleitschein ID
    $rs.Open("SELECT * FROM BEGLEITSCHEIN where BEGLEITSCHEIN_ID =" & $Suchbegriff & ";", $conn)
    If $rs.RecordCount Then
    While Not $rs.EOF
    ConsoleWrite("Begleitschein mit der ID: " & $rs.Fields("BEGLEITSCHEIN_ID").value & " hat folgende Begleitscheinnummer: " & $rs.Fields("BGSNR").value & @CRLF)
    $rs.MoveNext
    WEnd
    EndIf
    $rs.Close
    EndIf

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

    EndFunc ;==>Suche

    [/autoit]


    Jetzt ist es ja laut dem "nicht von mir stammenden Code" so, das ich mit

    [autoit]

    $rs.Fields("BEGLEITSCHEIN_ID").value

    [/autoit]

    immer nur auf einen definierte Wert aus der Datenbanktabelle greifen kann.
    Sicherlich kann ich via SQuirell mir die Tabelle im Vorfeld anschauen und dann das Script anpassen, jedoch würde ich gerne eine Möglichkeit haben ein

    SQL
    select * from MEINE_DB_Tabelle

    durch zu führen, und erst mal alles zu sehen, d.h ohne

    SQL
    where ....

    Bedingung.

    Wie stelle ich das mit dem ADO an ?

    2. Möchte ich dann gerne das Ergebnis runterstrippen auf die Werte, die mich interessieren und diese dann in der GUI ausgeben. Was für ein Controll macht hier am meisten Sinn ?
    Also die Ausgabe anstelle von "ConsoleWrite" in ein Controll,

    vielen Dank

    Kleine Nachtrag.

    Habe jetzt folgendes versucht:

    [autoit]

    ConsoleWrite($rs.Fields & " = " & $rs.value & @CRLF)

    [/autoit]

    oder

    [autoit]

    ConsoleWrite($rs.Fields.x.name & " = " & $rs.Fields.x.value & @CRLF)

    [/autoit]


    (habe ich von hier)
    Aber entweder verstehe ich das falsch, oder ich hab einfach was falsch gemacht

  • Combo in Echtzeit für Statusbar auslesen .... ohne Flackern

    • HassanMullah
    • 2. Mai 2013 um 16:47

    Ich habe die Lösung jetzt doch noch umgebaut, da ich danach sowieso noch eine Funktion habe, die über eine Schaltfläche angetriggert wird.
    Aber für die Zukunft würde mich über ein Beispielscript trotzdem freuen.

  • Combo in Echtzeit für Statusbar auslesen .... ohne Flackern

    • HassanMullah
    • 2. Mai 2013 um 15:54

    Hi BugFix

    der untere Teil ist für mein Level noch zu hoch, sorry.

    Den oberen kann ich grob folgen. Hast Du mir vielleicht ein kleines Beispielscript um auf die Schiene zu kommen ?
    Redest Du bei "vergleiche in der Schleife" von der While Wend oder ist das eine extra Schleife ?
    Danke

  • Combo in Echtzeit für Statusbar auslesen .... ohne Flackern

    • HassanMullah
    • 2. Mai 2013 um 14:45

    Hallo,

    ich möchte eine Combo zu dem Zeitpunkt auslesen, wo ich die Selektion mache. Den ausgelesenen Wert möchte ich in die Statusbar schreiben.

    Hierzu habe ich jetzt zwischen While 1 und Wend die Zeile

    [autoit]

    GUICtrlSetData($MainGUIStatusBar, GUICtrlRead($MainGUI_Combo01))

    [/autoit]


    eingetragen.

    Das ganze funktioniert auch, jedoch "flackert" die Statuszeile in der GUI wie blöd, wenn ich die Maus hin und her bewege.
    Styles habe ich in der GUI keine verwendet.
    Irgendwelche Ideen ?

    Vielleicht kann man das auch anderst lösen, wie das in die While 1 und Wend Schleife zu legen

  • Abfrage einer MS SQL 2008 DB mit Autoit

    • HassanMullah
    • 29. April 2013 um 15:32

    Danke Euch, ich werde dann mal die UDF testen. Ist den SQLite nur für MySQL ? Das habe ich leider nicht herausgefunden.

  • Abfrage einer MS SQL 2008 DB mit Autoit

    • HassanMullah
    • 29. April 2013 um 14:58

    Hallo zusammen,

    wir fragen bei uns in der Firma diverse MS SQL Datenbanken mit SQirrel ab. Ich würde jetzt gerne für ein paar Anwender eine kleine GUI machen, wo Sie vordefinierte SELECTS durchführen können, d.h. Sie können nix kaputt machen und müssen sich auch nicht mit SQL Statements auskennen.

    Ich bin jetzt nur etwas verunsichert, da es einige MSSQL.au3 UDFs im Netz gibt, aber auch eine SQLite UDF im Standard dabei ist.
    Welche UDF sollte man für eine MSSQL Datenbank aktuell verwenden ?

    Danke

  • HTML Quelltext nach Stringmuster parsen und in eine Datei schreiben

    • HassanMullah
    • 25. April 2013 um 16:15

    Hallo zusammen,

    die Lösung von x0r war perfekt. Habe das ganze mit der Zwischenablage verwirklicht und den String noch in der Textdatei etwas angepasst.
    Ich dachte weiß gut was für Code hier zusammen geschustert werden muss, und dann so einfach.

    Super, vielen vielen Dank

  • HTML Quelltext nach Stringmuster parsen und in eine Datei schreiben

    • HassanMullah
    • 25. April 2013 um 15:48

    Hallo zusammen,

    ich stehe gerade vor folgendem Problem, welches ich gerne mit Autoit und nicht mit notepad++ lösen möchte :)

    Ich muss von einigen Webseiten mir den kompletten Quelltext anzeigen lassen und aus diesem ein bestimmtes Stringmuster finden, welches dann in eine separate Textdatei geschrieben werden muss.

    Hier mal ein Beispielausschnitt:

    Code
    </tr><tr>
    						<td><a href="/LaenderEANV_Web/postfach?leanv_postfach_action=openDoc&id=zksMID13044128891107017066178632747091" class="zks_cntlnk_downl">G088161010 ENT<br/></a></td>
    						<td>03.05.2011  10:54:49</td>
    						<td>BGS / 177635616223804 / RA-FS558</td>
    					</tr><tr>
    						<td><a href="/LaenderEANV_Web/postfach?leanv_postfach_action=openDoc&id=zksMID13237953322745012591947546631736" class="zks_cntlnk_downl">ASVCMOD019 PROV<br/></a></td>
    						<td>13.12.2011  17:55:32</td>
    						<td>RQT / 2537f0b4-5e43-4</td>
    					</tr><tr>
    						<td><a href="/LaenderEANV_Web/postfach?leanv_postfach_action=openDoc&id=zksMID13238466428934842004851035756157" class="zks_cntlnk_downl">ASVCMOD019 PROV<br/></a></td>
    						<td>14.12.2011  08:10:43</td>
    						<td>RQT / bdfa75e4-31ff-4</td>
    					</tr></table><br /><h2>KLINK-Entsorgung, M58REC0027 / Entsorger</h2>
    				<table cellspacing="0" class="zks_cnt_tbl zks_cnt_epost">
    				<tr>
    Alles anzeigen


    Am Beispiel von

    Code
    id=zksMID13044128891107017066178632747091"


    brauche ich dann den String "zksMID13044128891107017066178632747091", da die Zahlen jedoch nonstop andere sind, muss ich die Suche einschränken, d.h. vorne nach id=zksMID und hinten mit Anführungzeichen beenden.

    Ich habe leider überhaupt keine Ansatz, wie ich das anstellen soll. Kann mich bitte mal jemand in die richtige Richtung schubsen ?

    Danke

  • http://www.java.com/de/download/manual.jsp abfragen

    • HassanMullah
    • 22. April 2013 um 16:52

    Dank Cheestiger, das war's :)

  • http://www.java.com/de/download/manual.jsp abfragen

    • HassanMullah
    • 22. April 2013 um 16:28

    Nachdem das Script jetzt einige Wochen lief, habe ich plötzlich Probleme mit dem IE10

    Ich wollte das jetzt ein wenig umstricken, verstehe aber nicht, warum sich die Variable "$version" nicht füllt.

    [autoit]


    #include <_HTML.au3>
    #include <String.au3>

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

    Local $sHTML = _HTML_GetSource("http://www.fqdn.tld/test.htm")
    Local $version = _StringBetween($sHTML,"<strong>Empfohlen ","</strong>")
    ConsoleWrite($sHTML & "CW1" & @CRLF)
    ConsoleWrite($version & "CW2" & @CRLF)
    ConsoleWrite("CW3" & @CRLF)

    [/autoit]


    Die Ausgabe sieht so aus:

    Code
    --> Press Ctrl+Alt+F5 to Restart or Ctrl+Break to Stop
    Aktuelle Version:<br>    <strong>Empfohlen 1.04.04</strong>  CW1
    CW3
    +>16:20:18 AutoIT3.exe ended.rc:0
    >Exit code: 0    Time: 2.028


    Zeile 4 wird komplett ignoriert.

  • FotoSort

    • HassanMullah
    • 19. April 2013 um 08:06

    Morgen Oscar,

    Ich liebe diese App !!!!!!!

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™