Site Announcements

Liebe Gäste des Forums, wir freuen uns, dass ihr zu uns gelangt seid.
Windev ist eine sehr umfangreiche und starke Entwicklerumgebung für Anwendungen unter Windows, Linux und Internetapplikationen inkl. Mobile.
Hier sind Antworten und Anregungen dazu zu finden!
Möchtest du aktiv mitschreiben? Dann melde dich durch Klick auf den Text "Registrieren" hier rechts oberhalb an.

HExecuteSQLQuery und HModify  Thema ist gelöst

Alle Themen rund um die Erstellung von Programmen

HExecuteSQLQuery und HModify

Beitragvon GHard » 4. Juni 2012, 14:37

HExecuteSQLQuery und HModify

Hi,

ich habe jetzt schon ein bisschen mehr mit WinDev gearbeitet und bin ganz zufrieden damit.
Allerdings ist bei mir ein seltsamer Fehler aufgetaucht.

Ich erstelle einen SQL String, mit dem ich dann per HExecuteSQLQuery(…) eine Abfrage durchführe, das Ergebnis weise ich einer globalen Variablen zu, welche ich wiederum als Quelle (..BrowsedItem) für ein Table Control nutze.

Wenn ich jetzt per HModify einen Datensatz der Tabelle ändere und daraufhin wieder den zuvor aufgeführten Vorgang (HExecute… + ..BrowsedFile) wiederhole, läuft beim nächsten Versuch HModify auf einen Fehler auf.

Das Phänomen zeigt sich nur wenn ich die Aktionen auf derselben Tabelle ausführe.
Es ist auch kein Problem zwischen den beiden HExec... –Befehlen mehrere HModify Befehle auszuführen, nur eben nach dem zweiten Ausführen einer Abfrage auf der Tabelle führt ein HModify Befehl zu einem Fehler, wenn ich zwischen den HExec… Befehlen mindestens einen HModify Befehl ausgeführt habe.

Gibt es einen Befehl dem man vor einem HModify ausführen muss, abgesehen von der Platzierung auf dem richtigen Datensatz? Vielleicht irgendwas damit wieder die Tabelle richtig eingelesen wird oder so?
Oder liegt das Problem an einer anderen Stelle?

MfG Gerhard
GHard
Junior Member
 
Beiträge: 12
Registriert: 29. September 2011, 09:52
Has thanked: 0 time
Have thanks: 0 time

Re: HExecuteSQLQuery und HModify

Beitragvon stefan.kern » 4. Juni 2012, 18:11

Hallo Gerhard,

kannst Du mal etwas Code posten?
Was sagt die Fehlermeldung?
stefan.kern
Junior Member
 
Beiträge: 23
Registriert: 24. März 2011, 21:13
Has thanked: 0 time
Have thanks: 1 time

Re: HExecuteSQLQuery und HModify

Beitragvon GHard » 6. Juni 2012, 07:48

Ja , sicher.

HExecuteSQL:
Code: Alles auswählen
PROCEDURE show_UAnträge(sSQLString is string)

// Anträge anzeigen
HExecuteSQLQuery(gdsQRY_UAntraege,sSQLString)
TABLE_UAnträge..BrowsedFile = gdsQRY_UAntraege


HModify:
Code: Alles auswählen
HReadSeekFirst(UV_UAntrag,Antrags_ID,nAntragID)
IF HFound() THEN
// Statusänderung speichern + LOG + Überprüfung
//IF HReadSeekFirst(UV_UAntrag,Antrags_ID,nAntragID) = true THEN   // bin ja bereits auf dem DS
   // Statusänderungen zuweisen
   UV_UAntrag.Status = nStatusNeu
   UV_UAntrag.StatusAEDatum = sZeitAngabe
   UV_UAntrag.StatusAEName = gsUserNetID
   UV_UAntrag.BegruendungAbgeStor = sGrund
   // Datum und Unterschrift eintragen wenn genehigt wurde
   IF nStatusAktion = konStatusGenehmigt THEN
      SWITCH gsUserGruppe
         CASE "AL":
            UV_UAntrag.AL_Name = gsUserNetID
            UV_UAntrag.AL_Datum = sZeitAngabe
         CASE "PL":
            UV_UAntrag.PL_Name = gsUserNetID
            UV_UAntrag.PL_Datum = sZeitAngabe
         CASE "GL":
            UV_UAntrag.GL_Name = gsUserNetID
            UV_UAntrag.GL_Datum = sZeitAngabe
         OTHER CASE
            
      END   // Switch UserGruppe
   END   // If genehmigt
   
   // TEST
   IF HModify(UV_UAntrag) = False THEN
      Warning("Antrag wurde nicht bearbeitet")
   END
END


Fehlermeldung:

    Error at line 101 of Global Procedure mod_AntragStatus process.
    HModify function called.
    OLE DB access error.
    Error Number = 1020

    Unexpected system error.

MfG Gerhard
GHard
Junior Member
 
Beiträge: 12
Registriert: 29. September 2011, 09:52
Has thanked: 0 time
Have thanks: 0 time

Re: HExecuteSQLQuery und HModify

Beitragvon stefan.kern » 6. Juni 2012, 19:08

Hi Gerhard,

ich bin jetzt nicht der 100% WinDev Crack, aber ich behaupte mal, dass dein HExecuteSQLQuery mit dem Fehlschlag von hModify nichts zu tun hat.
Mit dem Hexecutesqlquery machst Du nach meinem Erachten kein Sperre auf einen DS oder sowas. Du lädst ja nur den Inhalt der Tabelle in eine neue Variable ein.
Ich glaube eher, das Problem liegt am HModify selbst. Die Fehlermeldung sagt nicht wirklich viel, was für ne DB verwendest Du denn?
Kannst Du evt. mit einem Trace(ErrorInfo(ErrFullDetails)) direkt nach dem HModify eine genauere Fehlerbeschreibung kriegen?

Ich würde mal folgendes Prüfen:
- Gibt es evt. einen Konflikt mit AutoInc Feldern in der DB?
- Sind die Werte die Du mit dem HModify schreiben willst sinnvoll, also kein String in ein DateTime Feld oder sowas in der Art?

Und Versuch doch mal, Hmodify mit dem Parameter hCurrentRecNum zu machen.



Gruss

Stefan.
stefan.kern
Junior Member
 
Beiträge: 23
Registriert: 24. März 2011, 21:13
Has thanked: 0 time
Have thanks: 1 time

Re: HExecuteSQLQuery und HModify  Thema ist gelöst

Beitragvon GHard » 11. Juni 2012, 14:00

Hi,

es funktioniert jetzt!

Ich habe WinDev 17 installiert und das Projekt damit geöffnet. Jetzt klappt es ohne Probleme.
Es lag an der WinDev Version, denn wenn ich ein Backup des Projektes mit WinDev 16 öffne existiert der Fehler weiterhin.
Das selbe Backup funktioniert, nach der Migration nach WinDev 17, einwandfrei.

Danke für die Hilfe!

MfG Gerhard
GHard
Junior Member
 
Beiträge: 12
Registriert: 29. September 2011, 09:52
Has thanked: 0 time
Have thanks: 0 time


Zurück zu Programmierung allgemein

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast