natiii 0 Denunciar post Postado Outubro 19, 2007 Olá amigos!Minha dúvida hoje é a seguinte:TEnho um form que possui os labels : CDC, Numero da fatura e Data de Emissão. O que tenho que fazer é o seguinte: O usuário deverá colocar em qual CDC e em qual Numero da Fatura ele quer inserir a Data de Emissão, ou seja, quando digitar CDC e Numero da fatura já terá que achar no banco o correspondente a esses dados, e inserir somente a Data de Emissão que ainda não existe. Não sei por onde começar...Estou usando Access.Espero ter ficado claro!Desde já agradeço![]'sNatiii Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Outubro 19, 2007 Deixa eu ver se entendi, no caso o usuário vai informar em um edit o CDC desejado, e em outro a FATURA.Localiza os registros que tiverem o CDC desejado e a FATURA informada, e então insere a data que foi informada em outro edit ?Seria isto ?Ficou um pouco confuso :D Compartilhar este post Link para o post Compartilhar em outros sites
icefusion 0 Denunciar post Postado Outubro 19, 2007 Olá amigos!Minha dúvida hoje é a seguinte:TEnho um form que possui os labels : CDC, Numero da fatura e Data de Emissão. O que tenho que fazer é o seguinte: O usuário deverá colocar em qual CDC e em qual Numero da Fatura ele quer inserir a Data de Emissão, ou seja, quando digitar CDC e Numero da fatura já terá que achar no banco o correspondente a esses dados, e inserir somente a Data de Emissão que ainda não existe. Não sei por onde começar...Estou usando Access.Espero ter ficado claro!Desde já agradeço![]'sNatiiivamos ver se entendi e se consigo te ajudar!!!primeira coisa...o cdc e o número de fatura pode existir a mesma combinação (cdc + nº fatura) com várias datas?!?ou no caso se você encontrar uma que ja tenha data, você não vai adicionar nada!?vou fazer + - do jeito q entendi!!!você pode fazer um botão para pesquisar, ou colocar em onexit do campoprimeiro você vai fazer o select!- crie uma query, colocando SELECT * FROM TABELAae após isso você libera um edit para inserir a data e um botão de inserir!e faz o insert....ou você pode pegar e após o select ja inserir a data de hoje! mas você poderia ser um pouco mais clara para q possamos entender melhor seu problema!! Compartilhar este post Link para o post Compartilhar em outros sites
natiii 0 Denunciar post Postado Outubro 19, 2007 Vocês entenderam qual é o meu problema! É exatamente esse! A uncia diferença é que não vai precisar do Numero da fatura, apenas do numero do CDC para colocar a data de entrega. :) Natiii http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
icefusion 0 Denunciar post Postado Outubro 19, 2007 e você precisa saber mais o que natiii?! Compartilhar este post Link para o post Compartilhar em outros sites
natiii 0 Denunciar post Postado Outubro 19, 2007 Eu quero saber como fica esse insert... E se fica no code do delphi, ou no SQL... Desculpe, mas estou nesse mundo do delphi a pouco tempo.. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Natiii Compartilhar este post Link para o post Compartilhar em outros sites
icefusion 0 Denunciar post Postado Outubro 19, 2007 Eu quero saber como fica esse insert...E se fica no code do delphi, ou no SQL...Desculpe, mas estou nesse mundo do delphi a pouco tempo.. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Natiiiisso ae eu faria no delphi natiii...entaum faria uma query para o select !e uma query para o insert!!! eu vou colocar um exemplo porém naum uso ado como você...uso o dbexpress..entaum vai ter algumas diferenças nos nomes ae você transporta para o seu programa...e se surgir dúvida você da um toque!!olha.. você pode ter um combobox com todos os cncs ?(acho q é isso né q você quer fazer uma busca) entaum ae o que você faz...é + - isso:(você só tem q transportar para os componentes q você está utilizando!)sqlAuxiliar:=TSQLQuery.Create(Self); with sqlAuxiliar do begin SQLConnection:=dmBASE.Conexao; SQL.Clear; SQL.Add('SELECT EQMOVTP_CODIGO, EQMOVTP_DESCRICAO FROM EQUIPMOV_TIPO'); Open; while not Eof do begin eqmovtp_codigo:=FindField('EQMOVTP_CODIGO').AsInteger; eqmovtp_descricao:=FindField('EQMOVTP_DESCRICAO').AsString; cbTpMovimento.Items.Add(IntToStr(eqmovtp_codigo)+ ' - '+eqmovtp_descricao); Next; end; Close; end;depois a pessoa vai selecionar a partir do combobox...ae você teria q inserir uma data certo!?ae você pode colocar um campo para entrar com a data, e um botão processar!nesse botão processar você cria uma query fazendo um selectsqlAuxiliar:=TSQLQuery.Create(Self); with sqlAuxiliar do begin SQLConnection:=dmBASE.Conexao; SQL.Clear; SQL.Add('SELECT COUNT(EQMOVTP_CODIGO) AS REGISTRO FROM EQUIPMOV_TIPO'); SQL.Add(' WHERE CNC = :CNC AND '); SQL.Add(' DATA = :DATA '); ParamByName('CNC').ASSTRING:=COMBOBOX.ITEMS(COMBOBOX.[ITEMINDEX]); ParamByName('DATA').ASSTRING:=EDIT1.TEXT; Open; IF FindField('REGISTRO').AsInteger < 1 then begin with sqlAuxiliar do begin SQLConnection:=dmBASE.Conexao; SQL.Add('INSERT INTO COMPRAFROTA_NSERIE(PES_DOCTO , COMP_NOTA_SERIE )'); SQL.Add(' VALUES(:PES_DOCTO , :COMP_NOTA_SERIE )'); ParamByName('PES_DOCTO').AsString:=EDIT1.TEXT; ParamByName('COMP_NOTA_SERIE').AsString:=EDIT2.TEXT; ExecSQL(); Free; end; end; Close; end;É MAIS OU MENOS ISSO!!ENTAUM você TENTE REDIGIR SEU CÓDIGO E POST AQUI NOVAMENTE Q EU TE AJUDO!!NAUM TE GARANTO HJ, PQ LOGO VOU EMBORA PRA CASA...AE EU QUERO DESCANSAR MINHA CABEÇA HIHIH.... Compartilhar este post Link para o post Compartilhar em outros sites
natiii 0 Denunciar post Postado Outubro 22, 2007 Oi amigos... Estou tentando ainda resolver esse problema, criei uma query e deixei da seguinte maneira: UPDATE Faturas SET Faturas.DataEmissao = :DataEmi where Faturas.CDC = :CDC; Não sei se pode-se executar a query na propriedade SQL dessa maneira... No Access essa query funciona pereitamente, atualiza os valores no cdc indicado, mas no Delphi, está dando o seguinte erro: ADOQueryDataEmi: CommandText does not return a Result Set. E no código do Delphi coloquei: procedure TFormDataEmissao.ButtonInserirDataEmiClick(Sender: TObject); begin with AdoQueryDataEmi do begin AdoQueryDataEmi.Close; AdoQueryDataEmi.SQL.Add('Update Faturas SET Faturas.DataEmissao = :DataEmi where Faturas.CDC = :CDCFaturas'); AdoQueryDataEmi.Parameters.ParamByName('DataEmi').Value:= strToDate(EditDataEmi.Text); AdoQueryDataEmi.Parameters.ParamByName('CDCFaturas').Value:= EditCdcDataEmi.Text; AdoQueryDataEmi.Open; end; end; Não sei o que está errado... Desde já agradeço! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Natiii Compartilhar este post Link para o post Compartilhar em outros sites
icefusion 0 Denunciar post Postado Outubro 22, 2007 procedure TFormDataEmissao.ButtonInserirDataEmiClick(Sender: TObject);beginwith AdoQueryDataEmi dobeginAdoQueryDataEmi.Close;AdoQueryDataEmi.Clear;AdoQueryDataEmi.SQL.Add('Update Faturas SET Faturas.DataEmissao = :DataEmi where Faturas.CDC = :CDCFaturas');AdoQueryDataEmi.Parameters.ParamByName('DataEmi').Value:= strToDate(EditDataEmi.Text);AdoQueryDataEmi.Parameters.ParamByName('CDCFaturas').Value:= EditCdcDataEmi.Text;AdoQueryDataEmi.Open;end;end;tente desta forma!! procedure TFormDataEmissao.ButtonInserirDataEmiClick(Sender: TObject); begin with AdoQueryDataEmi do begin AdoQueryDataEmi.Close; AdoQueryDataEmi.SQL.Add('Update Faturas SET Faturas.DataEmissao = :DataEmi where Faturas.CDC = :CDCFaturas'); AdoQueryDataEmi.Parameters.ParamByName('DataEmi').Value:= strToDate(EditDataEmi.Text); AdoQueryDataEmi.Parameters.ParamByName('CDCFaturas').Value:= EditCdcDataEmi.Text; AdoQueryDataEmi.ExecSQL(); AdoQueryDataEmi.Free; AdoQueryDataEmi.Open; end; end; Compartilhar este post Link para o post Compartilhar em outros sites
natiii 0 Denunciar post Postado Outubro 22, 2007 Coloquei breakpoint para ver onde ocorria o erro. Quando chega em: AdoQueryDataEmi.ExecSQL dá o erro: Parameter definido incorretamente ou dados incompletos...Pelo que estou vendo aqui não tem parâmetros errados...E quando executo somente a Query na propriede SQL dá o erro: CommandText does not return a result set... Compartilhar este post Link para o post Compartilhar em outros sites
icefusion 0 Denunciar post Postado Outubro 22, 2007 tem um erro aqui ó! procedure TFormDataEmissao.ButtonInserirDataEmiClick(Sender: TObject); begin with AdoQueryDataEmi do begin AdoQueryDataEmi.Close; AdoQueryDataEmi.SQL.Add('Update Faturas SET Faturas.DataEmissao = :DataEmi where Faturas.CDC = :CDCFaturas'); AdoQueryDataEmi.Parameters.ParamByName('DataEmi').asDate:= strToDate(EditDataEmi.Text); AdoQueryDataEmi.Parameters.ParamByName('CDCFaturas').asString:= EditCdcDataEmi.Text; AdoQueryDataEmi.ExecSQL(); AdoQueryDataEmi.Free; AdoQueryDataEmi.Open; end; end; qdo você for passar um parâmetro utilize o tipo de dados referente e naum value! =] Compartilhar este post Link para o post Compartilhar em outros sites
natiii 0 Denunciar post Postado Outubro 22, 2007 É que fiz um código a pouo tempo que não aceitava de jeito nenhum asString e asDate, nem aparecia quando você dá o ponto (.), só resolvi o problema com value...Mas de qualquer forma tentei colocar agora, mas tambem deu erro:[Error] UnitDataEmissao.pas(39): Undeclared identifier: 'asDate'[Error] UnitDataEmissao.pas(40): Undeclared identifier: 'asString' Compartilhar este post Link para o post Compartilhar em outros sites
icefusion 0 Denunciar post Postado Outubro 22, 2007 troque por este aqui e tente.... AdoQueryDataEmi.Parameters.ParamByName('DataEmi').Value:= FormatDateTime('mm/dd/yyyy', StrToDateEditDataEmi.Text));AdoQueryDataEmi.Parameters.ParamByName('CDCFaturas').Value:= EditCdcDataEmi.Text; Compartilhar este post Link para o post Compartilhar em outros sites
natiii 0 Denunciar post Postado Outubro 22, 2007 troque por este aqui e tente.... AdoQueryDataEmi.Parameters.ParamByName('DataEmi').Value:= FormatDateTime('mm/dd/yyyy', StrToDateEditDataEmi.Text));AdoQueryDataEmi.Parameters.ParamByName('CDCFaturas').Value:= EditCdcDataEmi.Text; Eu troquei, mas deu o mesmo erro: Parametro definido incorretamente, os campos estão incompletos ou incorretos...O problema também é na propriedade SQL do AdoQuery, pois coloquei o code:Update Faturas SET Faturas.DataEmissao = :DataEmi where Faturas.CDC = :CDCFaturas e dá um erro tbm, que é CommandText dos not return a set result. Compartilhar este post Link para o post Compartilhar em outros sites
icefusion 0 Denunciar post Postado Outubro 22, 2007 natiii eu naum mexo com o ADO, porém eu vou dar uma pesquisada e te passo algum link ou o resultado em cima disso q você me passou ok?! =] fike tranquila q naum vou deixar você de lado naum... =]..só quero saber se o access aceitou o seu código sql...se o seu sql funcionou direitinho!!!se funcionou eu te trago a solução...hj estarei em casa mexendo com o linux configurando algumas coisas e vou pesquisar e te posto alguma coisa ainda hj!! Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Outubro 22, 2007 Tente assim: procedure TFormDataEmissao.ButtonInserirDataEmiClick(Sender: TObject);beginFormatDateTime('mm/dd/yyyy', StrToDateEditDataEmi.Text)with AdoQueryDataEmi do begin AdoQueryDataEmi.Close; AdoQueryDataEmi.SQL.Add('Update Faturas'); AdoQueryDataEmi.SQL.Add('SET Faturas.DataEmissao = ''' + FormatDateTime('mm/dd/yyyy', StrToDate(EditDataEmi.Text)) + ''''); AdoQueryDataEmi.SQL.Add('where Faturas.CDC = ' + EditCdcDataEmi.Text); AdoQueryDataEmi.ExecSQL; end;end; Compartilhar este post Link para o post Compartilhar em outros sites
natiii 0 Denunciar post Postado Outubro 22, 2007 Eu testei no ACCESS o code: Update Faturas set Faturas.DataEmissao = :DataEmi where Faturas.CDC = :CDC; Funcionou direitinho, Pediu a :DataEmi e o :CDC e foi inserido na Tabela faturas a data! Por isso que n]ao sei o que há de errado... :unsure: Natiii Compartilhar este post Link para o post Compartilhar em outros sites
icefusion 0 Denunciar post Postado Outubro 23, 2007 procedure TFormDataEmissao.ButtonInserirDataEmiClick(Sender: TObject);begin FormatDateTime('mm/dd/yyyy', StrToDateEditDataEmi.Text) with AdoQueryDataEmi do begin AdoQueryDataEmi.Close; AdoQueryDataEmi.SQL.Add('Update Faturas'); AdoQueryDataEmi.SQL.Add('SET Faturas.DataEmissao = ''' + FormatDateTime('mm/dd/yyyy', StrToDate(EditDataEmi.Text)) + ''''); AdoQueryDataEmi.SQL.Add('where Faturas.CDC = ' + EditCdcDataEmi.Text); AdoQueryDataEmi.ExecSQL; end;end; márcio...se você está usando with do naum precisa passar o AdoQuery novamente embaixo =] procedure TFormDataEmissao.ButtonInserirDataEmiClick(Sender: TObject);beginFormatDateTime('mm/dd/yyyy', StrToDateEditDataEmi.Text) with AdoQueryDataEmi do begin Close; SQL.Add('Update Faturas'); SQL.Add('SET Faturas.DataEmissao = ''' + FormatDateTime('mm/dd/yyyy', StrToDate(EditDataEmi.Text)) + ''''); SQL.Add('where Faturas.CDC = ' + EditCdcDataEmi.Text); ExecSQL; end;end; Compartilhar este post Link para o post Compartilhar em outros sites
icefusion 0 Denunciar post Postado Outubro 23, 2007 só não postei ontem a noite pq naum tava conseguindo entrar no forum!!!tentei por várias vezes mas naum sei o pq naum consegui!esse post encontrei na net... encontrando mais eu vou postar aqui para você se situar!! Enviada: Qui Jun 03, 2004 12:09 am Assunto: Responder com CitaçãoTParameters é muito chato... No seu caso tem como fugir disso. Se no banco 'varData' não é Date/Time e sim texto, então concatene direto no SQL.constSEU_FORMATO_TEXTO_DATA = 'dd/mm/yyyy';varStrData: string;beginStrData := FormatDateTime(SEU_FORMATO_TEXTO_DATA, dData);ADOQuery1.Close;ADOQuery1.Parameters.Clear;ADOQuery1.ParamCheck := False;ADOQuery1.SQL.Text := 'delete from Notas where data = ' + QuotedStr(StrData) + ' and Cliente is null';ADOQuery1.ExecSQL;Mesmo sendo tipo datetime no banco, dependendo do banco tb tem como fugir do TParameters, mas terá q usar função do banco pra conversão de string pra datetime.outroADOQuery1.Parameters.ParamByName('nome').ParamType := ptInput;Ou, ao invés de usar o nome do parâmetro, use o indice...ADOQuery1.Parameters.Items[0].ParamType := ptInputADOQuery1.Parameters.Items[0].DataType := ftString;ADOQuery1.Parameters.Items[0].Value := 'Gerfferson Santos'; Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Outubro 23, 2007 procedure TFormDataEmissao.ButtonInserirDataEmiClick(Sender: TObject);begin FormatDateTime('mm/dd/yyyy', StrToDateEditDataEmi.Text) with AdoQueryDataEmi do begin AdoQueryDataEmi.Close; AdoQueryDataEmi.SQL.Add('Update Faturas'); AdoQueryDataEmi.SQL.Add('SET Faturas.DataEmissao = ''' + FormatDateTime('mm/dd/yyyy', StrToDate(EditDataEmi.Text)) + ''''); AdoQueryDataEmi.SQL.Add('where Faturas.CDC = ' + EditCdcDataEmi.Text); AdoQueryDataEmi.ExecSQL; end;end;márcio...se você está usando with do naum precisa passar o AdoQuery novamente embaixo =]procedure TFormDataEmissao.ButtonInserirDataEmiClick(Sender: TObject);beginFormatDateTime('mm/dd/yyyy', StrToDateEditDataEmi.Text) with AdoQueryDataEmi do begin Close; SQL.Add('Update Faturas'); SQL.Add('SET Faturas.DataEmissao = ''' + FormatDateTime('mm/dd/yyyy', StrToDate(EditDataEmi.Text)) + ''''); SQL.Add('where Faturas.CDC = ' + EditCdcDataEmi.Text); ExecSQL; end;end; Ah sim, sei sim... :PFoi na pressa mesmo... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites