Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Prism BDP daten 'UPDATEN' (https://www.delphipraxis.net/21715-bdp-daten-updaten.html)

maximov 6. Mai 2004 23:06


BDP daten 'UPDATEN'
 
Hi.

Ich mal eine kleine ASP.Net db-anwendung gemacht: BdpConnection, BdpDataAdapter, DataSet, DataGrid.

Alles ist korrekt verlinkt und wenn ich mit DataGrid1.DataBind daten hole, dann sind sie auch zu sehen und über die entsprechenden eventHandler kann ich die daten auch editieren.

Allerdings fungiert mein DataGrid1_UpdateCommand handler nicht richtig :(

Erstmal den UPDATE query befehl:
Code:
UPDATE dbo.blog SET blogID = ?, BlogText = ?, userID = ? WHERE blogID = ?
Der ja hoffentlich mit füllen der parameter ergänzt wird!?

der code:
Delphi-Quellcode:
procedure TWebForm1.DataGrid1_UpdateCommand(source: System.Object; e: System.Web.UI.WebControls.DataGridCommandEventArgs);
var iBlogTextColl, iUserIDColl, iBlogIDColl:integer;
begin

  iBlogIDColl  := 0;
  iBlogTextColl := 1;
  iUserIDColl  := 2;
 
  bdpUpdateCommand1.Parameters.Item['blogText'].Value
    := TextBox(e.Item.Cells[iBlogTextColl].Controls[0]).Text;

  bdpUpdateCommand1.Parameters.Item['userID'].Value
    := TextBox(e.Item.Cells[iUserIDColl].Controls[0]).Text;

  bdpUpdateCommand1.Parameters.Item['blogID'].Value
    := TextBox(e.Item.Cells[iBlogIDColl].Controls[0]).Text;

  bdpUpdateCommand1.Connection.Open;
  try
    literal1.Text := bdpUpdateCommand1.ExecuteNonQuery.ToString; // <- fehler
  finally
    bdpUpdateCommand1.Connection.close;
  end;
 
  DataGrid1.DataBind;
end;
Die werte kommen mit den controls richtig zurück, mein einziges problem is das zurück schreiben! Alle hilfe texte schweigen sich darüber aus, bis auf der der SDK, aber die arbeiten da mit einer 'in-memory-db' und das ist deswegen ganz anders.

Der fehler lautet wie folgt:
Zitat:

Zitat von Cassini
Ausführung misslungen. Fehler bei einem aus mehreren Schritten bestehenden OLE DB-Vorgang. Prüfen Sie die einzelnen OLE DB-Statuswerte, falls vorhanden. Daten wurden nicht verarbeitet .

Was sind DB-Statuswerte? Und wie bekomme ich meine daten wieder in die DB?

Weiss jemand rat?

Bitte helft mir :-D

Robert_G 7. Mai 2004 00:31

Re: BDP daten 'UPDATEN'
 
Der BDP ist nicht in der Lage Parameter nach Namen zu verwalten.
Du solltest also am besten mal einfach versuchen, die Werte in der Reihefolge zu übergeben, die sie im Statement haben.
Ich habe das jetzt mal auf die Schnelle hingetippt ( und durch einen SourceFormatter gejagt ;) ).

Delphi-Quellcode:
var
  prmBlogID, prmBlogText, prmUserID :BdpParameter
begin

  with bdpUpdateCommand1 Do
  Begin
    with Paraneters Do
    Begin
      prmBlogID  := Add('BlogID' , bdptype.Int32);
      prmBlogText := Add('BlogText', bdptype.String);
      prmUserID  := Add('UserID' , bdptype.String);
    End;
    with e.Item do
    begin
      prmBlogID.Direction  := ParameterDirection.Input;
      prmBlogID.Value      := TextBox(Cells[iBlogTextColl].Controls[0]).Text;

      prmBlogText.Direction := ParameterDirection.Input;
      prmBlogText.Value    := TextBox(Cells[iBlogTextColl].Controls[0]).Text;

      prmUserID.Direction  := ParameterDirection.Input;
      prmUserID.Value      := TextBox(Cells[[iUserIDColl].Controls[0]).Text;
    End;

    Connection.Open;
    try
      ExecuteNonQuery;
    finally
      Connection.close;
    end;
  end;

  DataGrid1.DataBind;
end;
Falls auch das nicht geht, versuche das ganze mal in einer WinForms App. Geht es dort, dann teste den ISS.
Geht es auch dort, bockt mal ausnahmsweise nicht der BDP, sondern der Cassini. ;)

maximov 7. Mai 2004 09:19

Re: BDP daten 'UPDATEN'
 
Das sieht ja schonmal interessant aus. Die benannten-parameter scheinen aber schon zu existieren, denn wenn ich sie über einen falschen string-index anspreche, dann meckern sie auch...

Kann es jetzt leider nicht testen. Werde das problem zuhause mal mit einer winForms-anwendung isolieren.

Danke für deine mühe!

Bis bald...sehr bald :wink:

maximov 9. Mai 2004 23:24

Re: BDP daten 'UPDATEN'
 
Vielleicht könntet ihr mal posten, wie ihr es erfolgreich geschaft habt einen UPDATE befehl an den SQL server zu schicken...oder wie ihr vorgehen würdet! Komm hier nämlich nicht so recht weiter :?

Robert_G 9. Mai 2004 23:43

Re: BDP daten 'UPDATEN'
 
Wenn ich morgen gute Laune habe, nehme ich mir mal den BDP vor. ;)
Für den Zugriff auf den SQL Svr gibt es aber extra die SQLConnection, SQLDataAdpater,...

maximov 10. Mai 2004 10:31

Re: BDP daten 'UPDATEN'
 
Das wäre natürlich spitzenmässig :-D ...hab jetzt erstmal die BDP genommen weil ich dazu wenigstens ein bischen was gefunden habe, wenn es ohne das Borland zeug geht wärs natürlich auch nicht schlecht, anderer seits hat die BDP vermutlich die bessere integration in delphi...


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz