[duvidas] TABELA EM XML
bom dia...estou com uma duvida ..tenho uma tabela em xml e estou usando o comando Append,
eu gostaria de saber como eu posso inserir um registro entre o campo 1 e o campo 2....ou campo 3 entre o campo 4 e assim por diante...
alguem pode me ajudar
begin FileLB := TFileListBox(Source); Lista.Append; Lista.FieldByName(´Status´).asstring := ´Não Veiculada´; Lista.FieldByName(´Arquivo´).asstring := FileLB.FileName; Lista.FieldByName(´Descricao´).asstring := ExtractFileName(FileLB.FileName); Lista.Post; Edit2.Text:=IntToStr(Lista.RecordCount); end;
eu gostaria de saber como eu posso inserir um registro entre o campo 1 e o campo 2....ou campo 3 entre o campo 4 e assim por diante...
alguem pode me ajudar
Hammergod
Curtidas 0
Respostas
Steve_narancic
21/07/2008
Ao inves de append, utilize o comando INSERT
GOSTEI 0
Hammergod
21/07/2008
Ao inves de append, utilize o comando INSERT
não é bem isso...o insert ele insere do começo...
o append ele coloca no fim...eu queria fazer ...como eu colocasse um registro entre dois....tipo tem o registro 1 e 2...
se eu colocasse o proximo entre o 1 e 2 o q eu colocar fikara na possição 2 e o 2 antigo passar ser a posição 3..
GOSTEI 0
Brunodsr
21/07/2008
A resposta é INSERT mesmo brother.
Posicione o dataset no primeiro registro e use o comando insert.. O resultado será exatamente o que vc falou.
O append insere no final da tabela, mas o insert não, ele insere onde estiver posicionado.
Espero ter ajudado.
Posicione o dataset no primeiro registro e use o comando insert.. O resultado será exatamente o que vc falou.
O append insere no final da tabela, mas o insert não, ele insere onde estiver posicionado.
Espero ter ajudado.
GOSTEI 0
Hammergod
21/07/2008
A resposta é INSERT mesmo brother.
Posicione o dataset no primeiro registro e use o comando insert.. O resultado será exatamente o que vc falou.
O append insere no final da tabela, mas o insert não, ele insere onde estiver posicionado.
Espero ter ajudado.
como eu faço para posicionar o dataset....
exemplo quero colacar entre o registro 4 e 5......
é isso q eu quero fazer
GOSTEI 0
Brunodsr
21/07/2008
Cara.. isso ai não é automático não.
Vc tem que saber quem é o registro que vc quer posicionar. Tipo, quer posicionar no quinto registro ou no registro que tá na posição 5?
Exemplo: Eu quero posicionar no registro de código ´AA00441´. Nesse caso, eu uso a função locate do CDS (TDataSet).
Espero ter ajudado. :)
Vc tem que saber quem é o registro que vc quer posicionar. Tipo, quer posicionar no quinto registro ou no registro que tá na posição 5?
Exemplo: Eu quero posicionar no registro de código ´AA00441´. Nesse caso, eu uso a função locate do CDS (TDataSet).
function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): Boolean; override; //Ex.: Posicionando no registro q AA00441 e inserindo logo em seguida if CDS_Teste.Locate(´Codigo´, ´AA00441´, [loCaseInsensitive]) then begin CDS_Teste.Insert; ... ... CDS_Teste.Post; end;
Espero ter ajudado. :)
GOSTEI 0
Hammergod
21/07/2008
Cara.. isso ai não é automático não.
Vc tem que saber quem é o registro que vc quer posicionar. Tipo, quer posicionar no quinto registro ou no registro que tá na posição 5?
Exemplo: Eu quero posicionar no registro de código ´AA00441´. Nesse caso, eu uso a função locate do CDS (TDataSet).
Espero ter ajudado. :)
function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): Boolean; override; //Ex.: Posicionando no registro q AA00441 e inserindo logo em seguida if CDS_Teste.Locate(´Codigo´, ´AA00441´, [loCaseInsensitive]) then begin CDS_Teste.Insert; ... ... CDS_Teste.Post; end;
opa estamos quase la...esse locaseinsensitive eu havia feito ja,...
porem quando o mouse esta em cima da dbgrid....como eu sei em qual lugar ele esta tipo...no campo descrição...o mouse esta nesse campo por exemplo....em qual registro da descricao ele esta ...no 1,2,3,4 eu nao sei...
como eu faço para saber em qual ele esta ....
ai eu pegaria a descrição e usaria o caseinsensitive para posicionar ele...e depois dar o insert
GOSTEI 0
Brunodsr
21/07/2008
Cara.. pelo mouse em cima eu nao sei nao. Mas se vc clicar em cima do registro, o dataset ja vai estar posicionado nele, dai vc nem precisa do locate.
Eu pensei em vc usar os eventos do hint do dbgrid, mas é gambiarra demais. Se outro brother aí puder ajudar. blz?
Foi quase.. heheh
Eu pensei em vc usar os eventos do hint do dbgrid, mas é gambiarra demais. Se outro brother aí puder ajudar. blz?
Foi quase.. heheh
GOSTEI 0
Hammergod
21/07/2008
Cara.. pelo mouse em cima eu nao sei nao. Mas se vc clicar em cima do registro, o dataset ja vai estar posicionado nele, dai vc nem precisa do locate.
Eu pensei em vc usar os eventos do hint do dbgrid, mas é gambiarra demais. Se outro brother aí puder ajudar. blz?
Foi quase.. heheh
procedure TForm1.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var Coordenadas: TGridCoord; lNome: string; FileLB: TFileListBox; begin Lista.open; begin Coordenadas := THackGrid(dbgrid1).MouseCoord(X,Y); if (Coordenadas.X > 0) AND (Coordenadas.Y > 0) then begin lNome := Lista.FieldByName(´Descricao´).AsString; with THackGrid(dbgrid1) do begin lista.MoveBy(Coordenadas.Y - Row); lista.Insert; Lista.FieldByName(´Status´).asstring := ´Não Veiculada´; Lista.FieldByName(´Arquivo´).asstring := FileLB.FileName; Lista.FieldByName(´Descricao´).asstring := ExtractFileName(FileLB.FileName); Lista.Post; end; end; end; end;
consegui...era mais ou menos assim
GOSTEI 0
Brunodsr
21/07/2008
mto bom cara.. ficou mais simples do que eu imaginei.
Um abraco
Um abraco
GOSTEI 0
Hammergod
21/07/2008
mto bom cara.. ficou mais simples do que eu imaginei.
Um abraco
só q essa rotina é para usar no dragmode dragdrop
GOSTEI 0