[duvidas] TABELA EM XML
21/07/2008
0
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
Posts
21/07/2008
Hammergod
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..
22/07/2008
Brunodsr
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.
23/07/2008
Hammergod
como eu faço para posicionar o dataset....
exemplo quero colacar entre o registro 4 e 5......
é isso q eu quero fazer
23/07/2008
Brunodsr
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. :)
23/07/2008
Hammergod
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
23/07/2008
Brunodsr
Eu pensei em vc usar os eventos do hint do dbgrid, mas é gambiarra demais. Se outro brother aí puder ajudar. blz?
Foi quase.. heheh
23/07/2008
Hammergod
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
23/07/2008
Brunodsr
Um abraco
24/07/2008
Hammergod
só q essa rotina é para usar no dragmode dragdrop
Clique aqui para fazer login e interagir na Comunidade :)