Domanda

Quando si tenta di eseguire il codice:

function TDBClass.addNome(nome: String): String;
var
  rsnome: TADOQuery;
begin
  rsnome := TADOQuery.Create(nil);
  rsnome.Connection := connection;
  rsnome.Open();
  rsnome.SQL.Clear;
  rsnome.SQL.Text:='UPDATE enroll SET nome = "test" where id ="1"';
  rsnome.Parameters.ParamByName('nome').Value:= nome;
  rsnome.ExecSQL;
  rsnome.post();
  rsnome.Close();
  rsnome.Free();
end;

Ho ricevuto il messaggio di errore "Missing proprietà SQL". Dove ho sbagliato?
Grazie in anticipo!

È stato utile?

Soluzione

Non credo che si desidera utilizzare Aperto a tutti, e si utilizza i parametri in modo non corretto.
cioè lo SQL non ha alcuna: PARAM segnaposto in essa. Penso che dovrebbe essere qualcosa di simile: rsnome.SQL.Text:='UPDATE enroll SET nome = :NOME where id = :ID';

Vedere questo esempio: AdoQuery errore utilizzando parametri

Altri suggerimenti

Si sta chiamando rsnome.Open prima di impostare lo SQL rsnome.SQL.Text := ....

Hai diversi errori. Si sta chiamando Open prima di aver assegnato THS SQL (e senza bisogno di farlo).

Si sta cercando di impostare un valore di parametro non si è creato un parametro di accettare. (A proposito, mi piacerebbe fare anche un parametro ID, in modo da poter utilizzare questo per aggiornare più di nome di una persona.)

Non stai manipolazione fare in modo che le cose vengono pulite nel caso ci sia un errore (che dato il codice che ci certamente postato sarà).

Si sta utilizzando Post, che non è necessario con un database SQL.

provare qualcosa di simile, invece:

function TDBClass.addNome(nome: String): String;
var
  rsnome: TADOQuery;
begin
  rsnome := TADOQuery.Create(nil);
  try
    rsnome.Connection := connection;
    rsnome.SQL.Clear;
    rsnome.SQL.Text:='UPDATE enroll SET nome = :nome where id ="1"';
    rsnome.Parameters.ParamByName('nome').Value:= nome;
    rsnome.ExecSQL;
    rsnome.Close();
  finally
    rsnome.Free();
  end;
end;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top