dbexpress driver does not support the tdbxtypes.unknown data type.Vendor error message
Bom dia,
Estou tentando alterar alterar os dados de uma tabela, para poder inserir notas, através do update. Que antes do usuário cadastrar as notas, ele deve cadastrar o aluno, sendo assim teria que dar um update para poder inserir as notas. Segue o código.
Mas está dando o seguinte erro: "dbexpress driver does not support the tdbxtypes.unknown data type.Vendor error message", quando clico em salvar.
Estou usando o SQLQuery com o SQLConection.
CHAMANDO O METODO NO ON CLICK
procedure TForm3.BBSalvarClick(Sender: TObject);
Var
ObjInsereNota: TPessoa;
Codigo: Integer;
begin
ObjInsereNota := TPessoa.Create(SQLQuery1);
ObjInsereNota.Notas[0] := StrToFloat(EdNota1.Text);
ObjInsereNota.Notas[1] := StrToFloat(EdNota2.Text);
ObjInsereNota.Notas[2] := StrToFloat(EdNota3.Text);
ObjInsereNota.Notas[3] := StrToFloat(EdNota4.Text);
Codigo := StrToInt(EdMatricula.Text);
ObjInsereNota.InserirNotas(Codigo);
End;
MEU MOTODO NA CLASSE PARA FAZER A INSERÇÃO DA NOTA
function TPessoa.InserirNotas(vCodigo: Integer): Boolean;
begin
PQuery.Close;
PQuery.SQL.Clear;
PQuery.SQL.Add('Update Pessoa set');
PQuery.SQL.Add('Nota1 = :pNota1, Nota2 = :pNota2, Nota3 = ´:pNota3, Nota4 = :pNota4, Frequencia = :pFrenquencia');
PQuery.SQL.Add('Where Codigo = :pCodigo');
PQuery.ParamByName('pNota1').AsFloat := Notas[0];
PQuery.ParamByName('pNota2').AsFloat := Notas[1];
PQuery.ParamByName('pNota3').AsFloat := Notas[2];
PQuery.ParamByName('pNota4').AsFloat := Notas[3];
PQuery.ParamByName('pCodigo').AsInteger := vCodigo;
PQuery.ExecSQL;
Result := PQuery.RowsAffected > 0;
end;
Estou tentando alterar alterar os dados de uma tabela, para poder inserir notas, através do update. Que antes do usuário cadastrar as notas, ele deve cadastrar o aluno, sendo assim teria que dar um update para poder inserir as notas. Segue o código.
Mas está dando o seguinte erro: "dbexpress driver does not support the tdbxtypes.unknown data type.Vendor error message", quando clico em salvar.
Estou usando o SQLQuery com o SQLConection.
CHAMANDO O METODO NO ON CLICK
procedure TForm3.BBSalvarClick(Sender: TObject);
Var
ObjInsereNota: TPessoa;
Codigo: Integer;
begin
ObjInsereNota := TPessoa.Create(SQLQuery1);
ObjInsereNota.Notas[0] := StrToFloat(EdNota1.Text);
ObjInsereNota.Notas[1] := StrToFloat(EdNota2.Text);
ObjInsereNota.Notas[2] := StrToFloat(EdNota3.Text);
ObjInsereNota.Notas[3] := StrToFloat(EdNota4.Text);
Codigo := StrToInt(EdMatricula.Text);
ObjInsereNota.InserirNotas(Codigo);
End;
MEU MOTODO NA CLASSE PARA FAZER A INSERÇÃO DA NOTA
function TPessoa.InserirNotas(vCodigo: Integer): Boolean;
begin
PQuery.Close;
PQuery.SQL.Clear;
PQuery.SQL.Add('Update Pessoa set');
PQuery.SQL.Add('Nota1 = :pNota1, Nota2 = :pNota2, Nota3 = ´:pNota3, Nota4 = :pNota4, Frequencia = :pFrenquencia');
PQuery.SQL.Add('Where Codigo = :pCodigo');
PQuery.ParamByName('pNota1').AsFloat := Notas[0];
PQuery.ParamByName('pNota2').AsFloat := Notas[1];
PQuery.ParamByName('pNota3').AsFloat := Notas[2];
PQuery.ParamByName('pNota4').AsFloat := Notas[3];
PQuery.ParamByName('pCodigo').AsInteger := vCodigo;
PQuery.ExecSQL;
Result := PQuery.RowsAffected > 0;
end;
Claudinei
Curtidas 0
Respostas
Geverson Souza
08/04/2017
Bom dia amigo, estava com um problema parecido e resolvi da seguinte forma, cliquei sobre o componente TSQLQuery e na propriedade Params cliquei sobre essa propriedade associei os DataType de cada um conforme minha necessidade.
Tente isso.
Espero ter ajudado!
Tente isso.
Espero ter ajudado!
GOSTEI 0
Emerson Nascimento
08/04/2017
você não preencheu o parâmetro pFrequencia, por isso o driver deve estar reclamando do valor Unknown.
GOSTEI 0