Ich versuche, ein Datum in eine dateTime-Spalte in einer SQL Server 2008 R2-Datenbank zu schreiben, aber ich bin auf viele Probleme gestoßen, von denen ich nicht weiß, was die Ursachen sind.
Zuerst habe ich diesen Code verwendet, aber ich bekam die Fehlermeldung: cannot convert string to date.
ADOOF.SQL.Text:='UPDATE OFTab SET CA='''+ CA.Text + ''', demandeClient=''' + DateTimeToStr(demandeClient.DateTime) + ''' WHERE ID='''+ ADOOF.FieldByName('ID') + '''';
ADOOF.ExecSQL;
Zweitens: Ich habe Parameter verwendet:
ADOOF.SQL.Text:='UPDATE OFTab SET CA='''+ CA.Text + ''', demandeClient=:demande_client WHERE ID='''+ ADOOF.FieldByName('ID') + '''';
ADOOF.Parameters.ParamByName('demande_client').Value:= demandeClient.Date;
ADOOF.ExecSQL;
Aber ich bekam die Fehlermeldung: Parameter (demande_client) nicht gefunden.
Ich habe dieses Problem gegoogelt und einen Vorschlag von Embarcadero gefunden, der besagt, dass die Parameter vor dem Aufruf der ADOQuery wie folgt erstellt werden sollten:
ADOOF.SQL.Text:='UPDATE OFTab SET CA='''+ CA.Text + ''', demandeClient=:demande_client WHERE ID='''+ ADOOF.FieldByName('ID') + '''';
ADOOF.Parameters.ParseSQL(ADOOF.SQL.Text, True);
ADOOF.Parameters.ParamByName('demande_client').Value:= demandeClient.Date;
ADOOF.ExecSQL;
Fein habe ich die Verbindung Persist Security Info entfernt, aber immer das gleiche Problem. Bitte, irgendwelche Vorschläge.
INFO: Ich verwende MICROSOFT OLE DB Provider For SQL Server.