Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Wilke1

usando updatesql

Recommended Posts

ola pessoal

e o seguinte eu tenho o campo horario_inicial e o horario_final , quando o usuario seleciona o segundo período , ele usa o mesmo campos, até aqui tá ok mas quando passa de três dias dias , ele ja não consegue salvar . eu fiz assim no botão do 2º período.

 

varx,y:integer;i,j:integer;loja:integer;begin   Dbedit44.SetFocus;   If Qryhorariopromotorcd_promotor.value <> ''  then begin	  Qryhorariopromotor.insert;	  Qryhorariopromotor.Append;	  Qryhorariopromotor.FieldByName('cd_promotor').Value:=Qrypromotores.FieldByName('cd_promotor').Value;   end;	if cbbloja.ItemIndex=0 then begin	   Qryhorariopromotor.FieldByName('cd_loja').Value:='001';	end;	if cbbloja.ItemIndex=1 then begin	   Qryhorariopromotor.FieldByName('cd_loja').Value:='020';	end;	if cbbloja.ItemIndex=2 then begin	   Qryhorariopromotor.FieldByName('cd_loja').Value:='022';	end;	if cbbloja.ItemIndex=3 then begin	   Qryhorariopromotor.FieldByName('cd_loja').Value:='023';	end;	if cbbloja.ItemIndex=4 then begin	   Qryhorariopromotor.FieldByName('cd_loja').Value:='026';	end;	if cbbloja.ItemIndex=5 then begin	   Qryhorariopromotor.FieldByName('cd_loja').Value:='027';	end;	if cbbloja.ItemIndex=6 then begin	   Qryhorariopromotor.FieldByName('cd_loja').Value:='034';	end;	if cbbsemana.ItemIndex=0 then begin	   Qryhorariopromotor.FieldByName('dia_semana').Value:='segunda';	end;	if cbbsemana.ItemIndex=1 then begin	   Qryhorariopromotor.FieldByName('dia_semana').Value:='Terca';	end;	if cbbsemana.ItemIndex=2 then begin	   Qryhorariopromotor.FieldByName('dia_semana').Value:='Quarta';	end;	if cbbsemana.ItemIndex=3 then begin	   Qryhorariopromotor.FieldByName('dia_semana').Value:='Quinta';	end;	if cbbsemana.ItemIndex=4 then begin	   Qryhorariopromotor.FieldByName('dia_semana').Value:='Sexta';	end;	if cbbsemana.ItemIndex=5 then begin	   Qryhorariopromotor.FieldByName('dia_semana').Value:='Sabado';	end;	if cbbsemana.ItemIndex=6 then begin	   Qryhorariopromotor.FieldByName('dia_semana').Value:='Domingo';	end;
desde ja agradeço pela ajuda de vocês

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não consegue salvar porque??

Dá algum erro? qual o erro? Em que linha???

 

e essas variáveis x, y, i, estão declaradas mais naum estou vendo o uso das mesmas ....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não consegue salvar porque??

Dá algum erro? qual o erro? Em que linha???

 

e essas variáveis x, y, i, estão declaradas mais naum estou vendo o uso das mesmas ....

Rodrigo não aparece nenhuma mensage de error , mas eu executei o break poit , no botão de confirmar e na linha de Qryhorariopromotor.ApplyUpdates e onde para.

Compartilhar este post


Link para o post
Compartilhar em outros sites

poste esse trecho do código...

Hugo esse codigo e o do botão de confirmar
fornecedor_:STRING;Divisao_:STRING;begin  fornecpromotor:=Qrymostrafornecedores.FieldByName('cd_fornecedor').AsString;  codpromotor:= Qrypromotores.FieldByName('cd_promotor').AsString;	 IF (QRYHORARIOPROMOTOR.STATE = DSINSERT)or (QRYHORARIOPROMOTOR.STATE = DSEDIT) THEN BEGIN		 Qryhorariopromotor.FieldByName('CD_PROMOTOR').AsInteger:=Qrypromotores.FieldByName('CD_PROMOTOR').AsInteger;	 end;	IF (QRYPROMOTORFORNEC.STATE = DSINSERT) or (QRYPROMOTORFORNEC.STATE = DSEDIT) OR (QRYPROMOTORES.STATE = DSEDIT)or (QRYMOSTRAFORNECEDORES.STATE = DSBROWSE)or (QRYHORARIOPROMOTOR.STATE = DSINSERT)or (QRYHORARIOPROMOTOR.STATE = DSedit)THEN BEGIN		QryPromotorFORNEC.FieldByName('CD_PROMOTOR').AsInteger:= Qrypromotores.FieldByName('CD_PROMOTOR').AsInteger;		Qrypromotorfornec.FieldByName('cd_fornecedor').AsInteger:=Qrymostrafornecedores.FieldByName('CD_FORNECEDOR').AsInteger;		Qrypromotorfornec.FieldByName('CD_DIVISAO').AsInteger:=Qrydivisao.FieldByName('CD_DIVISAO').AsInteger;	END;		QryDivisaoENTRE.Close;		QryDivisaoENTRE.SQL.Clear;		QryDivisaoENTRE.SQL.Add(' SELECT DS_DIVISAO,CD_DIVISAO  ');		QryDivisaoENTRE.SQL.Add(' FROM TB_DIVISAO_FORNECEDOR ');		QryDivisaoENTRE.SQL.Add(' WHERE CD_FORNECEDOR = :CD_FORNECEDOR ');		QryDivisaoENTRE.ParamByName('CD_FORNECEDOR').AsString:=QrymostraFornecedores.FieldByName('CD_FORNECEDOR').AsString;		QryDivisaoENTRE.Open;  fornecedor_ := Dbedit40.Text;  if QryDivisaoENTRE.Locate('DS_divisao', CbbDivisao1.Text, [LoCaseInsensitive])=true then	  Divisao_:= QryDivisaoENTRE.fieldByName('CD_DIVISAO').AsString  else	 Divisao_ := '%';	 Qrydivisao.Close;	 Qrydivisao.SQL.Clear;	 Qrydivisao.SQL.Add(' SELECT TV.CD_DIVISAO,TV.CD_FORNECEDOR,TV.DS_DIVISAO ');	 Qrydivisao.SQL.Add('FROM TB_DIVISAO_FORNECEDOR TV,TB_FORNECEDOR TF');	 Qrydivisao.SQL.Add('WHERE TV.CD_FORNECEDOR='+''''+fornecedor_ +''' AND ');	 Qrydivisao.SQL.Add('TV.CD_DIVISAO LIKE'+''''+Divisao_ +''' AND ');	 Qrydivisao.SQL.add('TV.CD_FORNECEDOR=TF.CD_FORNECEDOR ');	 Qrydivisao.SQL.SaveToFile('C:\DIVISAOTESTE.TXT');	 Qrydivisao.Open;  if QryDivisao.RecordCount <= 1 then begin  IF (QRYPROMOTORFORNEC.STATE = DSINSERT)OR (QRYPROMOTORFORNEC.STATE = DSEDIT)or (QRYHORARIOPROMOTOR.STATE = DSINSERT)or (QRYHORARIOPROMOTOR.STATE = DSedit) THEN  BEGIN	 QRYPROMOTORFORNEC.FieldByName('CD_PROMOTOR').Value :=Qrypromotores.FieldByName('CD_PROMOTOR').Value;	 QRYPROMOTORFORNEC.FIELDBYNAME('CD_FORNECEDOR').Value := QrymostraFornecedores.FieldByName('CD_FORNECEDOR').Value;	 QRYPROMOTORFORNEC.FIELDBYNAME('CD_DIVISAO').Value := Qrydivisaoentre.FieldByName('CD_DIVISAO').Value;	 Qrypromotorfornec.ApplyUpdates;	 Qrypromotorfornec.CommitUpdates;  END;  END; if  QryDivisao.RecordCount > 1 then begin IF (QRYPROMOTORFORNEC.STATE = DSINSERT) THEN BEGIN While not QryDivisao.eof do begin	 QRYPROMOTORFORNEC.FieldByName('CD_PROMOTOR').ASINTEGER := Qrypromotores.FieldByName('CD_PROMOTOR').AsInteger;	 QRYPROMOTORFORNEC.FIELDBYNAME('CD_FORNECEDOR').ASSTRING := QrymostraFornecedores.FieldByName('CD_FORNECEDOR').AsString;	 QRYPROMOTORFORNEC.FIELDBYNAME('CD_DIVISAO').ASSTRING := Qrydivisao.FieldByName('CD_DIVISAO').AsString;	 QRYPROMOTORFORNEC.Post;	 QRYPROMOTORFORNEC.Edit;	 QRYPROMOTORFORNEC.ApplyUpdates;	 QRYPROMOTORFORNEC.CommitUpdates;	 QRYPROMOTORFORNEC.Append;	 Qrydivisao.Next;	  end;   end;end;	   fmprincipal.database1.startTransaction;	try	   Qrypromotores.ApplyUpdates;	   Qrypromotores.CommitUpdates;	   Qryhorariopromotor.ApplyUpdates;-------------break poit para aqui.	   Qryhorariopromotor.CommitUpdates;	   Fmprincipal.Database1.commit;  except	   FMPrincipal.Database1.Rollback;	 RAISE;   end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

você está usando BDE???

 

Qual o BD???

 

e outra coisa...

 

porque não usa por exemplo:

Qrypromotores.ApplyUpdates;Qryhorariopromotor.ApplyUpdates;
ao invés de:

Qrypromotores.ApplyUpdates;	   Qrypromotores.CommitUpdates;	   Qryhorariopromotor.ApplyUpdates;-------------break poit para aqui.	   Qryhorariopromotor.CommitUpdates;	   Fmprincipal.Database1.commit;

??????

Compartilhar este post


Link para o post
Compartilhar em outros sites

você está usando BDE???Qual o BD???e outra coisa...porque não usa por exemplo:

Qrypromotores.ApplyUpdates;Qryhorariopromotor.ApplyUpdates;
ao invés de:
Qrypromotores.ApplyUpdates;	   Qrypromotores.CommitUpdates;	   Qryhorariopromotor.ApplyUpdates;-------------break poit para aqui.	   Qryhorariopromotor.CommitUpdates;	   Fmprincipal.Database1.commit;
??????
Hugo o banco e oracle.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas ta usando BDE?

sim Hugo ,o BDE QUE VOCE FALA NÃO E O BANCO DE DADOS? EAS TABELAS !EU UTILIZO TRÊS TABELAS PRA FAZER UM CADASTRO DE PROMOTOR DE VENDAS1 TB_PROMOTORES2 TB_HORARIO_PROMOTORES3 TB_PROMOTORES_FORNEC

Compartilhar este post


Link para o post
Compartilhar em outros sites

não fi...o BDE que eu falo são os componentes de acesso a banco...quais componentes você ta usando??TQuery, TTable,TDatabase???

assim me perdoe a ingnorancia Hugo.eu utilizo query,datasource, updatesql

Compartilhar este post


Link para o post
Compartilhar em outros sites

que isso cara...bom, vamos lá...Seu Database ta configurado certo e conectando corretamente?A Query ta retornando resultados???A Query ta com CachedUpdates como TRUE???A Query está ponteirando sua propriedade UpdateObject para o UPDATESQL que você colocou???O Update SQL está com os SQL Statments gerados corretamente para a Tabela em questão que será atualizada???Você da o Post quando grava e ai depois para confirmar tudo da o .ApplyUpdates, correto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

que isso cara...bom, vamos lá...Seu Database ta configurado certo e conectando corretamente?A Query ta retornando resultados???A Query ta com CachedUpdates como TRUE???A Query está ponteirando sua propriedade UpdateObject para o UPDATESQL que você colocou???O Update SQL está com os SQL Statments gerados corretamente para a Tabela em questão que será atualizada???Você da o Post quando grava e ai depois para confirmar tudo da o .ApplyUpdates, correto?

Hugo verifiquei o que voce me disse, mas quando eu insiro dois horario horario como entrada e saida de dois dias , ele grava perfeitamente. mas quando passa de três dias ja não grava mas nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual a mensagem de erro???

Hugo o Interessante e que não há erro, o break poit para no Qrypromotorfornec.ApplyUpdates;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para como???Se parou é porque tem algum exception...você ta usando TRY/Except/Finally ou alguma rotina de tratamento de erros?se estiver desative-a momentaneamente e tente rodar.... pq algo está ocorrendo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para como???Se parou é porque tem algum exception...você ta usando TRY/Except/Finally ou alguma rotina de tratamento de erros?se estiver desative-a momentaneamente e tente rodar.... pq algo está ocorrendo...

realmente tem try /except/finally, mas eu desativei, e continuou com com o mesmo problema.Hugo só lembrando e que eu só tenho dois campos hora_inicial e hora_final.quando eu utilizo somente um horario como 08:00 as 12:00, fica perveito,ele grava normal.idependente dos dias incluidos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido pessoal.

eu fiz assim e deu Certo.

if (Qryhorariopromotor.State=dsinsert)or (Qryhorariopromotor.State=dsedit) then begin		  Qryhorariopromotor.Insert;		  Qryhorariopromotor.FieldByName('cd_promotor').Value:=Qrypromotores.FieldByName('cd_promotor').Value;		  Dbedit44.SetFocus;	  if cbbloja.ItemIndex=0  then begin		  Qryhorariopromotor.FieldByName('cd_loja').Value:='001';	  end;	  if cbbsemana.ItemIndex=0 then begin		  Qryhorariopromotor.FieldByName('dia_semana').Value:='Segunda.';	  end;	  if cbbloja.ItemIndex=1 then begin		 Qryhorariopromotor.FieldByName('cd_loja').Value:='020';	 end;	 if cbbsemana.ItemIndex=1 then begin		  Qryhorariopromotor.FieldByName('dia_semana').Value:='Terça.';	 end;	 if cbbloja.ItemIndex=2  then begin		 Qryhorariopromotor.FieldByName('cd_loja').Value:='022';	 end;	 if cbbsemana.ItemIndex=2 then begin		 Qryhorariopromotor.FieldByName('dia_semana').Value:='Quarta.';	 end;	 if cbbloja.ItemIndex=3 then begin	   Qryhorariopromotor.FieldByName('cd_loja').Value:='023';	 end;	 if cbbsemana.ItemIndex=3 then begin	   Qryhorariopromotor.FieldByName('dia_semana').Value:='Quinta.';	end;	if cbbloja.ItemIndex=4 then begin	   Qryhorariopromotor.FieldByName('cd_loja').Value:='026';	end;	if cbbsemana.ItemIndex=4 then begin	   Qryhorariopromotor.FieldByName('dia_semana').Value:='Sexta.';	end;	if cbbloja.ItemIndex=5 then begin	   Qryhorariopromotor.FieldByName('cd_loja').Value:='027';	end;	if cbbsemana.ItemIndex=5 then begin	   Qryhorariopromotor.FieldByName('dia_semana').Value:='Sabado.';	end;	if cbbloja.ItemIndex=6 then begin	   Qryhorariopromotor.FieldByName('cd_loja').Value:='034';	end;	if cbbsemana.ItemIndex=6 then begin	   Qryhorariopromotor.FieldByName('dia_semana').Value:='Domingo.';	end;	   Qryhorariopromotor.Post;   end;	if Qryhorariopromotor.RecordCount >=0 then begin	  For I:=0 to Cbbloja.Items.Count - 1 do	  cbbloja.Checked[I]:=False;	end;	if Qryhorariopromotor.RecordCount >=0 then begin	  For y:=0 to Cbbsemana.Items.Count - 1 do	  cbbsemana.Checked[y]:=False;	end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, legal... boa noticia essa... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif que que tava errado no Code Wilke???

Hugo , eu fiz com que ele pegasse o proximo dia já com o dia ja alterado. ex:segunda 08:00 as 12:00segunda. 14:00 as 18:00 assim deu certo,colocando esse ponto no final.ai ele gravação. ficou meio sem tecnica pra te responder melhor, mas funcionou .valeu Hugo pela força

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.