Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 3882 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Bom Dia pessoal do Forum!

 

Estou no processo do meu tcc e empaquei numa parte... :(

 

É um Software para Granjas e estou na parte de cadastro, tenho alguns botões de novo, excluir, incluir e editar!

 

Alguns campos para preencher e depois de preenchido quando for clicar no botão incluir é para incluir no DBGrid! Só que quando clico no Incluir ele dá um erro!

 

Project tcc.exe raised exception class EConvertError with message ''' is not a valid integer value'. Process stopped. Use Step or Run to Continue.

 

Após isso, quando clico no botão ok, uma linha azul vai para o dpr e marca a linha do Application.Run

 

No banco de dados está as seguintes informações desse cadastro de Lotes:

 

CODLOTES       - INTEGER

LOTE                 - NCHAR(80)

LINHAGEM         - NCHAR(20)

NUMERO           - INTEGER

DATAALOJA      - DATE

INICIOSEM         - DATE

SEXO                - CHAR(10)

TOTALFEM      - INTEGER

PRECOFEM     - INTEGER

TOTALMAC      - INTEGER

PRECOMACH   - INTEGER

TIPORACAO     - NCHAR(20)

 

Vou postar também o código que está dentro do botão incluir:

var sSql : String;
begin
    sSql := 'INSERT INTO LOTES' +
            ' (CODLOTES, LOTE, LINHAGEM, NUMERO, DATAALOJAMENTO, INICIOSEMANA,SEXO, TOTALFEMEA, PRECOFEMEA, TOTALMACHO, PRECOMACHO, TIPORACAO)' +
            'VALUES (:CODLOTES, :LOTE, :LINHAGEM, :NUMERO, :DATAALOJAMENTO, :INICIOSEMANA, :SEXO, :TOTALFEMEA, :PRECOFEMEA, :TOTALMACHO, :PRECOMACHO, :TIPORACAO) ';

    with ADOQueryL do
    begin
      Close;      //Fecha a conexão
      Sql.Clear;  //Limpa a query
      Sql.Add(sSql);
      Parameters.ParamByName('CODLOTES').Value       := StrToInt(L_CODIGO.Text);
      Parameters.ParamByName('LOTE').Value           := quotedstr(L_LOTE.Text);
      Parameters.ParamByName('LINHAGEM').Value       := quotedstr(L_LINHAGEM.Text);
      Parameters.ParamByName('NUMERO').Value         := StrToInt(L_NUMERO.Text);
      Parameters.ParamByName('DATAALOJAMENTO').Value := quotedstr(L_DATAALOJ.Text);
      Parameters.ParamByName('INICIOSEMANA').Value   := quotedstr(L_INICIOSEM.Text);
      Parameters.ParamByName('SEXO').Value           := quotedstr(L_SEXO.Text);
      Parameters.ParamByName('TOTALFEMEA').Value     := L_TOTALFEMEA.Value;
      Parameters.ParamByName('PRECOFEMEA').Value     := L_PRECOFEMEA.Value;
      Parameters.ParamByName('TOTALMACHO').Value     := L_TOTALMACHO.Value;
      Parameters.ParamByName('PRECOMACHO').Value     := L_PRECOMACHO.Value;
      Parameters.ParamByName('TIPORACAO').Value      := quotedstr(L_TIPORACAO.Text);

        acaoNovo.enabled := True;
        acaoEditar.Enabled := True;
        acaoIncluir.Enabled := false;
        acaoExcluir.Enabled := True;
      try
         ExecSQL;
      except
         On E:Exception do
         begin
            ShowMessage('Erro na atualização da base de dados. Erro: ' + E.Message);
         end;
      end;//try except
    end;  //with ADOQueryL
end;

Espero que possam me ajudar de alguma forma :/ Já não sei mais onde recorrer! 

 

E falta apenas 1 mes para a entrega x.x

 

Obrigada.

 

  • Moderadores
Postado

Bom dia de cara já diria que seu problema está na criação da tabela

pelo que me parece você tem campos para guardar valores monetários e está informando os mesmos como inteiro

 

CODLOTES       - INTEGER

LOTE                 - NCHAR(80)

LINHAGEM         - NCHAR(20)

NUMERO           - INTEGER

DATAALOJA      - DATE

INICIOSEM         - DATE

SEXO                - CHAR(10)

TOTALFEM      - INTEGER

PRECOFEM     - INTEGER

TOTALMAC      - INTEGER

PRECOMACH   - INTEGER

TIPORACAO     - NCHAR(20)

 

Ao passar por parâmetro os dados ele devem de estar indo com ponto pois deve de ser 1.00 

dai dará problema!

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Postado

Tente alterar os campos para float e verifique se nenhum deles esta sinalizado como preenchimento obrigatório mas ao clicar no botão gravar não recebe um valor.

 

TOTALFEM      - INTEGER

PRECOFEM     - INTEGER

TOTALMAC      - INTEGER

PRECOMACH   - INTEGER

NUMERO           - INTEGER

CODLOTES       - INTEGER

Postado (editado)

Certo, mas aí nas linhas de código não teria que alterar alguma coisa? Pelo fato de eu ter mudado para Float?

 

Mudei aqui para Float no banco de dados... Mas parece estar dando erro do mesmo jeito... x.x

 

Quando clico no botão ok, ele vai direto para a DPR, no Application.Run;

Editado por DaniBS01
Postado

Fiz essa mudança... Executei, preenchi os campos, agora da outro erro:

 

Project tcc.exe raised exception class EOleException with message 'Cannot insert explicit value for identify column in table 'Lotes' when IDENTITY_INSERT is set to OFF'. Use Step or Run to continue.

 

E dps desse erro ele cria uma linha azul no ExecSQL;

Postado

Não sei se tem que colocar um Open, vou tentar... :s

 

Delphi 7 e SQL Server 2008... A conexao com o banco está tudo ok...

 

Não entendo pq da essa montão de erro x.x

Postado

Hãm  :???:

with ADOQuery do
begin
  close;
  parameters.params[0].asinteger := 1;
  parameters.params[0].asfloat := 1.36;
  parameters.params[0].asstring := minhavariavelstring;
  execsql;
end;

talvez isso lhe ajude

 

AsFloat não dá, dá erro... "Undeclared identifier: 'AsFloat'

Postado

cara não sou programador delphi, mas o erro ta claro pela a execeção.

 

'Cannot insert explicit value for identify column in table 'Lotes' when IDENTITY_INSERT is set to OFF

Traduzindo em miudo você esta setando um campo Identify, ou seja um campo com auto-incremento e o banco de dados não esta permitindo pois você não habilitou esta opção. em suma tenta não enviar o campo "CODLOTES" so o resto que provavelmente vai funcionar.

 

Postado

cara não sou programador delphi, mas o erro ta claro pela a execeção.

Traduzindo em miudo você esta setando um campo Identify, ou seja um campo com auto-incremento e o banco de dados não esta permitindo pois você não habilitou esta opção. em suma tenta não enviar o campo "CODLOTES" so o resto que provavelmente vai funcionar.

 

 

Eh fiz, isso, tirei o COLOTES do INSERT, esse erro não dá mais, agora da outro KK

Postado

ótimo agora é só ir lendo o erro que você vai descobrir os problemas.

Conselho leia bem os erros muitos são bem explicito e fácil de entender, igual ao que você postou anteriormente.

 

Postado (editado)

Preencho todos os campos, clico em inserir e da o seguinte erro

 

project tcc.exe raised exception clas EOleException with message 'Conversion failed when converting date/or time from character string'. Process stopped. Use step or run to continue.

 

Clico em ok e vai pro ExecSql; e Application.Run; da dpr

 

É gente, eu acho que vou precisar de umas aulas só de erros rs :mad:

Editado por DaniBS01
Postado

Esse erro agora é da conversão de string para data nesses dois:

 

Parameters.ParamByName('DATAALOJAMENTO').Value := quotedstr(L_DATAALOJ.Text);
Parameters.ParamByName('INICIOSEMANA').Value := quotedstr(L_INICIOSEM.Text);

 

da uma pesquisada ai que você arruma fácil.

 

Eu uso strtodate no mysql.

Postado

Esse erro agora é da conversão de string para data nesses dois:

 

Parameters.ParamByName('DATAALOJAMENTO').Value := quotedstr(L_DATAALOJ.Text);

Parameters.ParamByName('INICIOSEMANA').Value := quotedstr(L_INICIOSEM.Text);

 

da uma pesquisada ai que você arruma fácil.

 

Eu uso strtodate no mysql.

 

Eh, eu tbm usei o strtodate / strtodatetime ... mas o erro prossegue...

 

O erro chega aqui agora

try
         ExecSQL;

E esse erro continua

 

project tcc.exe raised exception clas EOleException with message 'Conversion failed when converting date/or time from character string'. Process stopped. Use step or run to continue.

  • Moderadores
Postado

Gostaria de estar indicando fóruns sobre desenvolvimento delphi para iniciantes, se efetuar uma breve pesquisa irá achar todos os caminhos para iniciar

 

http://www.activedelphi.com.br/forum/viewforum.php?f=1

http://forum.devmedia.com.br/viewforum.php?f=1

http://forum.imasters.com.br/forum/72-delphi/

http://forum.clubedohardware.com.br/forum/178-pascaldelphi/

http://www.dicasdelphi.com.br/forum/

 

e sobre seu problema de conversão de data , tem que informar a data no formato que o seu banco está configurado e não no formato que você acha que deve de fazer

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Este tópico foi criado há 3882 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.