Autor Thema: Schreiben in eine SQL Table  (Gelesen 1917 mal)

Offline RonMat

  • Junior Mitglied
  • **
  • Beiträge: 64
  • Geschlecht: Männlich
  • Immer weiter, immer weiter......
Schreiben in eine SQL Table
« am: 27.06.05 - 11:09:00 »
Hallo Gemeinde,
ich habe nachfolgenden Script geschrieben, dieser funtioniert auch- mit einer Ausnahme. Es wird in der Table das"Mailsentflag" nicht geschrieben. Kann mir an dieser Stelle Jemand weiterhelfen.
Im Notesscripting habe ich doch lediglich den updateRow - oder???

Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim docmail, Profile As NotesDocument
   Set Profile=session.CurrentDatabase.GetProfileDocument("EDI_Profile")
   ODBC_Name=profile.GetItemValue("ODBC_Con_Name")
   ODBC_Admin=profile.GetItemValue("ODBC_Admin")
   ODBC_PW=profile.GetItemValue("PW_ODBC")
   Superuser=profile.GetItemValue("Superuser")
   Set db = session.CurrentDatabase
   
   Dim con As New ODBCConnection
   Dim qry As New ODBCQuery
   Dim result As New ODBCResultSet
   Dim textmail  As String
   
   Set qry.Connection = con
   Set result.Query = qry
   '                                             
   If con.ConnectTo(ODBC_Name(0), ODBC_Admin(0),ODBC_PW(0)) Then
      qry.SQL = "SELECT MailText FROM EDISendMail where MailSent is NULL"
      
      result.Execute
      If result.IsResultSetAvailable Then
         Do
            result.NextRow
            textmail= result.GetValue("MailText")
            Call result.SetValue("MailSentFlag)", "Yes")
            result.UpdateRow
            msg = msg & Chr(10) & Textmail
         Loop Until result.IsEndOfData
         result.Close(DB_CLOSE)
      Else
         Exit Sub
      End If
      con.Disconnect
   End If
   
   'Mailversand
   
   
   Set docmail = db.CreateDocument
   Set docmail = New NotesDocument( db )
   docmail.Form="Memo"
   
   
   Call docmail.ReplaceItemValue( "SendTo", Superuser(0))
   Call docmail.ReplaceItemValue("Subject","EDI Report " & Today)
   Call docmail.ReplaceItemValue("Body",msg)
   Call docmail.ReplaceItemValue("ReportDate",Now)
   'Call docmail.Save(True,True)
   Call docmail.Send( False )
   

Offline Wirsing

  • Senior Mitglied
  • ****
  • Beiträge: 283
  • Geschlecht: Männlich
    • METZ CONNECT
Re: Schreiben in eine SQL Table
« Antwort #1 am: 27.06.05 - 13:34:13 »
Hmmm, ist die Klammer im Feldnamen von MailSentFlag beabsichtigt???
6 Lotus Domino Server 9.0.1(FP5-7) auf Windows 2008R2 Server
ca. 450 Clients mit 8.5.x/9.0.1

Offline RonMat

  • Junior Mitglied
  • **
  • Beiträge: 64
  • Geschlecht: Männlich
  • Immer weiter, immer weiter......
Re: Schreiben in eine SQL Table
« Antwort #2 am: 27.06.05 - 13:51:25 »
Nein, ist aus Versehen hineingerutscht. Habe sie im Script beseitigt und der Satz wird nach wie vor nicht upgedated. Aus MS Access kann ich die Felder bearbeiten und auch neue Werte eingeben. Also stimmen die Lese/Schreibrechte auch.
Ich verstehe es im Augenblick auch nicht, habe zwar mit ODBC nicht so viele Erfahrungen aber insgesamt sieht es von meiner Seite sauber aus. Danke für die Info

Offline Wirsing

  • Senior Mitglied
  • ****
  • Beiträge: 283
  • Geschlecht: Männlich
    • METZ CONNECT
Re: Schreiben in eine SQL Table
« Antwort #3 am: 27.06.05 - 15:45:48 »
Versuch mal diesen SELECT:

SELECT MailText,MailSentFlag FROM EDISendMail where MailSentFlag is NULL

Ich denke, dass das Feld, welches Du ändern möchtest auch in der Abfrage sein muss.
« Letzte Änderung: 27.06.05 - 15:47:33 von Wirsing »
6 Lotus Domino Server 9.0.1(FP5-7) auf Windows 2008R2 Server
ca. 450 Clients mit 8.5.x/9.0.1

Offline RonMat

  • Junior Mitglied
  • **
  • Beiträge: 64
  • Geschlecht: Männlich
  • Immer weiter, immer weiter......
Re: Schreiben in eine SQL Table
« Antwort #4 am: 29.06.05 - 10:10:18 »
Hallo Wirsing, habe es probiert. Leider keinen Erfolg, ....es schreibt nicht. Vielleicht liegt es an den ODBC Treiber - obwohl ich die neuesten verwende. Ich suche weiter.....
Vielen Dank für Deine Ansätze

Offline Wirsing

  • Senior Mitglied
  • ****
  • Beiträge: 283
  • Geschlecht: Männlich
    • METZ CONNECT
Re: Schreiben in eine SQL Table
« Antwort #5 am: 29.06.05 - 11:48:18 »
Schau auch mal, ob die ODBC Verbindung nicht schreibgeschützt verbindet.

Dies kann man z.B. bei iSeries Access (AS400) Verbindungen angeben.
6 Lotus Domino Server 9.0.1(FP5-7) auf Windows 2008R2 Server
ca. 450 Clients mit 8.5.x/9.0.1

Marinero Atlántico

  • Gast
Re: Schreiben in eine SQL Table
« Antwort #6 am: 29.06.05 - 12:21:50 »
Falscher Datentyp?
Welchen Datentyp hat die Spalte EDISendMail.MailSentFlag im Schema der Access-DB?
Kann es unter Umständen sein, dass Access irgendeinen boolean Datentyp als "Yes" ausgibt, das aber eigentlich boolean ist?

Marinero Atlántico

  • Gast
Re: Schreiben in eine SQL Table
« Antwort #7 am: 29.06.05 - 12:44:18 »
ich hab lange kein odbc mehr gemacht, aber es sollte eine Möglichkeit geben nach der Zeile updateRow eine Fehlermeldung der Datenbank abzufragen, die diese nämlich senden sollte, falls der Update fehlschlägt. Die Auswertung von SQL-FEhlermeldungen ist integraler Bestandteil eines auf eine RDBMS zugreifenden Programms. Ohne jeden Zweifel. Und das fehlt. 

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz