Hallo Holger,
vielen Dank für den Hinweis. Das mit dem Löschflag kenne ich von DBF-Seite
her,
aber den Schalter im .Net-Connectionstring kannte ich noch nicht. Aber
leider hilft mir das noch nicht viel weiter,
denn ich komme noch nicht einmal soweit, das in der DBF-Tabelle einige Sätze
als gelöscht markiert werden.
Entweder stürzt das Programm vorher mit Fehlern ab (je nachdem entweder
etwas mit Parallelitäts.... oder Parameter fehlt oder anderes) oder
meine Befehle bleiben völlig wirkungslos. Wie gesagt etwas Beispielcode
würde mir sehr helfen.
Kann ja auch sein ich bin auf dem völlig falschen oder viel zu komplizierten
Dampfer.
Deshalb hier etwas aus meinen Versuchen, von denen ich das meiste schon
wieder auskommentiert habe,
weil nichts klappt:
DataSet dsWS = new DataSet();
System.Data.Odbc.OdbcDataAdapter daWS = new
System.Data.Odbc.OdbcDataAdapter();
this.odbcSelectCommand1.CommandText = "SELECT * FROM WS_NAKA"; // WHERE
PRO_NR = '"+sPrj+"'";
this.odbcSelectCommand1.Connection = this.odbcConnection1;
daWS.SelectCommand = this.odbcSelectCommand1;
daWS.Fill(dsWS,"WS_NAKA");
DataTable dt_WS = dsWS.Tables[0];
/*
DataColumn[] myColArray = new DataColumn[1];
myColArray[0] = dt_WS.Columns["ID"];
dt_WS.PrimaryKey = myColArray;
//string delSql = "DELETE FROM WS_NAKA WHERE ID = '"+"1 "+"'";
string delSql = "DELETE FROM WS_NAKA WHERE [ID] = @p1";
System.Data.Odbc.OdbcCommand cmd = new
System.Data.Odbc.OdbcCommand(delSql,this.odbcSelectCommand1.Connection);
System.Data.Odbc.OdbcParameter p1
=cmd.Parameters.Add("@p1",System.Data.Odbc.OdbcType.NVarChar, 10, "ID");
//System.Data.Odbc.OdbcParameter p1 =cmd.Parameters.Add("@p1"," ");
p1.SourceVersion = DataRowVersion.Original;
daWS.DeleteCommand = cmd;
this.odbcSelectCommand1.Connection.Open();
foreach (DataRow oRow in dt_WS.Rows)
{
oRow.Delete();
}
try
{
daWS.Update(dt_WS);
}
catch (Exception ex)
{
System.Console.WriteLine(ex.Message);
}
this.odbcSelectCommand1.Connection.Close();
*/
Vielleicht fällt ja jemanden etwas dazu ein - es würde mich wirklich sehr
weiterbringen!
Vielen Dank im voraus!!!
Post by Holger VorbergHi,
Post by ralf muellerAber es will mir partou nicht gelingen aus einer DBF-Tabelle über diesen Weg
einen oder mehrere Datensätze zu löschen.
"es will dir nicht gelingen" heisst, du hast es versucht, aber die
gelöschten Sätze tauchen immer
Post by Holger Vorbergwieder auf?
Das hängt damit zusammen, dass in .DBF Dateien die Sätze eigentlich nicht
wirklich gelöscht werden,
Post by Holger Vorbergsondern zunächst mal nur ein Löschflag bekommen. Wenn du über ODBC drauf
zureifst, dann musst du dem
Post by Holger VorbergODBC Treiber mitteilen, dass die Sätze mit Löschflag zu ignorieren sind.
In einem Connectionstring
Post by Holger Vorbergwäre das mit der Option "deleted=yes" zu machen.
HTH
Tschüß,
Holger Vorberg
MS Visual FoxPro MVP
dFPUG Regionalleiter Bielefeld