Fórum Erro ao inserir dados #342259
23/05/2007
0
Bom dia Pessoal, voltei a trabalhar com delphi para atualizar um item do sistema, porém estou com a seguinte dificuldade em inserção.
Tenho a seguinte tabela:
cod_acesso integer,
cod_funcionario integer,
data_acesso date,
hora_acesso time
Quando faço a inserção desta forma:
aparece uma mensagem dizendo o seguinte:
Creio que seja alguma relação com incompatibilidade, porém tentei e ainda não descobri como consertar isso.
Aguardo ajuda...
Tenho a seguinte tabela:
cod_acesso integer,
cod_funcionario integer,
data_acesso date,
hora_acesso time
Quando faço a inserção desta forma:
SQLQuery2.SQL.Add(´insert into acessos_local (cod_acesso,cod_funcionario,data_acesso,hora_acesso) values (´+´´´´+IntToStr(cod_acesso)+´´´´+´,´+´´´´+SQLQuery1.FieldValues[´cod_func´]+´´´´+´,´+´´´´+aux_data+´´´´+´,´+´´´´+TimeToStr(time)+´´´´+´)´); SQLQuery2.ExecSQL;
aparece uma mensagem dizendo o seguinte:
could not convert variant of type (String) into type (Double),
Creio que seja alguma relação com incompatibilidade, porém tentei e ainda não descobri como consertar isso.
Aguardo ajuda...
Flaviobrazuca
Curtir tópico
+ 0
Responder
Posts
23/05/2007
Jurandi
Caro,
Num insert em uma tabela vc deve passar cada campo de forma isolada, tipo:
insert into tabela (nomecoluna1, nomecoluna2, nomecoluna3) values (valor1, valor2, valor3)
Sds
Num insert em uma tabela vc deve passar cada campo de forma isolada, tipo:
insert into tabela (nomecoluna1, nomecoluna2, nomecoluna3) values (valor1, valor2, valor3)
Sds
Responder
Gostei + 0
23/05/2007
Adriano Santos
Caro,
Num insert em uma tabela vc deve passar cada campo de forma isolada, tipo:
insert into tabela (nomecoluna1, nomecoluna2, nomecoluna3) values (valor1, valor2, valor3)
Sds
SQLQuery2.SQL.Add(´insert into acessos_local (cod_acesso,cod_funcionario,data_acesso,hora_acesso) values (´+´´´´+IntToStr(cod_acesso)+´´´´+´,´+´´´´+SQLQuery1.FieldValues[´cod_func´]+´´´´+´,´+´´´´+aux_data+´´´´+´,´+´´´´+TimeToStr(time)+´´´´+´)´); SQLQuery2.ExecSQL;
Isolada? Não entendi [b:37b044e969]jurandi[/b:37b044e969]. Não está isolado acima?
Bom dia Pessoal, voltei a trabalhar com delphi para atualizar um item do sistema, porém estou com a seguinte dificuldade em inserção.
Tenho a seguinte tabela:
cod_acesso integer,
cod_funcionario integer,
data_acesso date,
hora_acesso time
Quando faço a inserção desta forma:
aparece uma mensagem dizendo o seguinte:
[quote:37b044e969]
could not convert variant of type (String) into type (Double),
SQLQuery2.SQL.Add(´insert into acessos_local (cod_acesso,cod_funcionario,data_acesso,hora_acesso) values (´+´´´´+IntToStr(cod_acesso)+´´´´+´,´+´´´´+SQLQuery1.FieldValues[´cod_func´]+´´´´+´,´+´´´´+aux_data+´´´´+´,´+´´´´+TimeToStr(time)+´´´´+´)´); SQLQuery2.ExecSQL;
Creio que seja alguma relação com incompatibilidade, porém tentei e ainda não descobri como consertar isso.
Aguardo ajuda...[/quote:37b044e969]
[b:37b044e969]Flavio[/b:37b044e969] o que você fez está correto, porém um pouco confuso. Não é necessário o uso deste monte de áspas que colocou. Pra ficar mais simples o código você pode usar QuotedStr(SuaVariavel), assim fica mais visível e o QuotedStr insere as áspas pra você.
Bem, eu dei uma ´organizada´ no seu código se não me leva a mal ok?
Dá uma olhada.
procedure TForm1.Button1Click(Sender: TObject); var Cod_Acesso : Integer; Aux_Data: TDateTime; begin Cod_Acesso := 0; //Alguma coisa; Aux_Data := Now; //Alguma coisa; with sqlQuery2, SQL do begin Close; Clear; Add(´INSERT INTO ACESSOS_LOCAL (COD_ACESSO, COD_FUNCIONARIO, DATA_ACESSO, HORA_ACESSO)´); Add(´VALUES´); Add(´(:COD_ACESSO, :COD_FUNC, :AUX_DATA, :TIME)´); ParamByName(´COD_ACESSO´).AsInteger := COD_ACESSO; ParamByName(´COD_FUNC´).AsInteger := sqlQuery1.FieldByName(´COD_FUNC´).AsInteger; ParamByName(´AUX_DATA´).AsDateTime := Aux_Data; ParamByName(´TIME´).AsTime := Time; try sqlQuery2.ExecSQL; except on E:Exception do MessageDlg(´Ocorreu um erro ao inserir os dados.´ + #13 + E.Message, [mbOk], 0); end; end; end;
Use parâmetros que fica mais legível e tranquilo de programar.
Abs
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)