Announcement

Collapse
No announcement yet.

Dringend: Problem beim Übergeben von TDateTime (C++Builder) nach TimeStamp(IB6)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Dringend: Problem beim Übergeben von TDateTime (C++Builder) nach TimeStamp(IB6)

    Ich benutze eine InterBase 6 Datenbank und greife via C++Builder 5 Pro auf auf sie zu. Mein Problem liegt darin, dass ich ein TimeStamp-Attribut in einer Entität habe und ich diesem Attribut von C++ Builder aus ein Datum zuweisen möchte. Eine Einfügeabfrage fällt aus, da ich ein Problem beim darstellen eines Float-Wertes habe. Was muss ich also tun, um über ein IBTable-Objekt einen Datensatz in die Datenbank aufzunehmen, der ein Datum enthält. Mein Versuch sah so aus :

    <code>
    STDMETHODIMP TTest2Impl::AddDS(short Kanal, TOLEBOOL Signal, float Wert,
    BSTR Bemerkung)<BR>
    {<BR>
    try<BR>
    {<BR>
    m_VclCtl->IBTable1->Insert();<BR>
    m_VclCtl->IBTable1->FieldByName("Datum")->AsDateTime = Now(); // Kann hier der Fehler liegen?!<BR>
    m_VclCtl->IBTable1->FieldByName("Kanal")->AsInteger = Kanal;<BR>
    if (Signal == true)<BR>
    m_VclCtl->IBTable1->FieldByName("Sig")->AsInteger = 1;<BR>
    else<BR>
    m_VclCtl->IBTable1->FieldByName("Sig")->AsInteger = 0;<BR>
    m_VclCtl->IBTable1->FieldByName("Wert")->AsFloat = Wert;<BR>
    m_VclCtl->IBTable1->FieldByName("BEMERK")->AsString = AnsiString(Bemerkung);<BR>
    m_VclCtl->IBTable1->Post();<BR>
    }<BR>
    catch(Exception &e)<BR>
    {<BR>
    return Error(e.Message.c_str(), IID_ITest2);<BR>
    }<BR>
    return S_OK;<BR>
    };<BR>
    </code>

    hat jemand eine Idee zu meinem Problem?!

    Danke im Vorraus! MaRtIn

  • #2
    arbeite zwar immer mit Delphi, aber prinzipiell sieht es gut aus. Was bekommst Du denn dür eine Fehlermeldung?

    Besser wäre, aber nicht Dein eigentlichen Problem, mit TIBQuery oder TIBDataSet zu arbeiten. TIBTable führt in Sackgassen

    Comment


    • #3
      Hallo,

      danke für deine schnelle Antwort.

      Hier die Fehlermeldung :

      <i>"Fehler bei der Bearbeitung von 'Test21.AddDS' auf method call(execute) Ausnahme 0x80020009: <b>''ist keine gültige Datums- und Uhrzeitangabe.</b>"</i><br>
      <br>
      Was kann das aus deiner Sicht sein?! Achso(falls notwendige Info), die ganze Sache ist ein ActiveX-Control und wird in Intouch ausgeführt.

      Kannst du die Variante mit dem TIBDataSet mal erläutern, ich hab noch nicht damit gearbeitet. Als TIBQuery hab ich die ganze Sache auch schon probiert, aber ich hab da probleme mit der Variable Wert (float). Die lässt sich nicht in ein brauchbares Format bringen. Soweit ich es in Erinnerung habe werden in SQL float Zahlen mit einem Punkt als trennzeichen dargestellt. Wenn dir dazu auch noch was einfällt, dann immer her mit den Infos.

      Ciao! MaRtI

      Comment


      • #4
        Der Fehlermeldung nach ist irgendein Teil deines Pointers nil

        m_VclCtl->IBTable1->FieldByName("Datum")->AsDateTime

        drei mögliche Kandidaten stehen ja drin,

        alle geprüft, was passiert wenn Du das Datum als zweites nimmst, knallt es dann beim Kanal, dann läge es nicht am Format

        Comment


        • #5
          Ich hab die Sache jetzt mit einer SQL-Abfrage mittels Update gelöst.
          Läuft auch! Und bringt nicht solche hässlichen Fehlermeldungen.

          Trotzdem danke für deine Hilfe.

          Ciao! MaRtI

          Comment


          • #6
            Na fein, das ist in jedem Fall die bessere Lösun

            Comment

            Working...
            X