none
adp Formular Recordsource Unterschied Inputparameter zu EXEC RRS feed

  • Frage

  • Hallo,

    habe ein Access2k-MSSQL2008-Projekt. Einige Formulare habe als Recordsource SP mit Inputparametern eingetragen. Bisher habe ich die Recordsource und die Inputparameter zur Laufzeit beim Öffnen des Form gesetzt:

    Me.InputParameters = "@lngIdTakopf int = " & Forms(pbl_stFrmFrom)!Id_Takopf

    Me.RecordSource = "dbo.sp_frm_dat_tauhr_preisbank"

    Das hat bis vor kurzem gut funktioniert, auf einmal geht es nicht mehr, der Parameter muss immer manuell nochmals eingegeben werden. Keine Ahnung warum, habe nichts bewusst auf meinem System geändert. Beim Kunden läufts auf diese Weise immer noch ohne Probleme.

    Damit ich auf meinen System weiterarbeiten kann, habe ich die Recordsource mit EXEC getestet, und das läuft:

    Me.RecordSource = "EXEC dbo.sp_frm_dat_tauhr_preisbank " & Forms(pbl_stFrmFrom)!Id_Takopf

    Spricht etwas dagegen, wenn ich alle meine Formulare von den me.Inputparameters auf EXEC umstelle? Kann ich die Formulare weiterhin auch bearbeiten, der Resync bei Datenänderungen funktioniert auch weiterhin?

    Vielen Dank im voraus und herzliche Grüße

    Andreas

    Donnerstag, 22. September 2011 07:14

Antworten

  • Spricht etwas dagegen, wenn ich alle meine Formulare von den me.Inputparameters auf EXEC umstelle? Kann ich die Formulare weiterhin auch bearbeiten, der Resync bei Datenänderungen funktioniert auch weiterhin?


    Hallo Andreas,

    Du hast da nichts auf "EXEC" ungestellt, der Aufruf der Stored Procedure ist gleich geblieben. Das kannst Du auch in SSMS mit folgendem ausprobieren:

    sp_helpdb;
    EXEC sp_helpdb;
    

    Die beiden Zeilen sind völlig identisch.

    Was Du geändert hast ist die Übergabe der Parameter-Werte für die SP. Im ersten Fall mit "InputParameters" werden separate benannte Parameter angegeben; damit habe ich noch nie gearbeitet, von daher weiß ich nicht, wie gut es funktioniert.

    Im zweiten Fall hast Du die Parameter einfach die Parameter an den Command Text fürs RecordSource dran gehängt. Auch hier könntest Du die Parameter-Namen angeben, anderfalls musst Du unbedingt auf die Reihenfolge achten. Ausserdem musst Du die Werte Formatierung beachten, da es als String übergeben wird. Hier bei einem Int Wert ist es unkritisch, anders sieht es dann bei Datumswerten oder nicht-ganzzahligen Werten aus.

     


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    • Als Antwort markiert Andreas Jaendl Freitag, 23. September 2011 06:36
    Donnerstag, 22. September 2011 16:23