Fórum Navegação de registros perfeita usando ADODataSet #301906
05/11/2005
0
Estou tentando fazer uma navegação de registros perfeita no delphi com sql server mas não estou conseguindo, alguem pode me ajudar?
Eu coloquei os paramentros de conexão certinho
ConnectionString := ConnStr;
CommandText := STR_SQL;
CursorLocation := clUseClient;
CursorType := ctKeyset;
Quanbdo eu faço as condições para saber se está em fim ou inicio de registro para mostrar os dados, mas ele sempre no final ou no inicio eu tenho que clicar duas vezes para navegar.
Alguem pode me ajudar??????????????
Grato
Levisants
Curtir tópico
+ 0Posts
05/11/2005
Bon Jovi
Gostei + 0
05/11/2005
Levisants
ADODataSetCadTransp.Recordset.MoveFirst;
end else begin
if Not ADODataSetCadTransp.Recordset.BOF Then ADODataSetCadTransp.Recordset.MovePrevious;
end;
if Not ADODataSetCadTransp.Recordset.BOF Then exibedados; //mostra os dados no campo
Gostei + 0
06/11/2005
Bon Jovi
Nao entendi seu objetivo em relacao a esse código. Mas pegue exemplo aqui: http://rapidshare.de/files/7248897/Project1.zip.html (No final da pagina clica no botao [Free] e na prox pagina no final clica em Download: Project1.zip)
Gostei + 0
06/11/2005
Levisants
Mas num tem como vc me ajudar a fazer usando o recordset?
E porque existe duas opções de uso, a sem o recordset e com o recordset...
Gostei + 0
06/11/2005
Bon Jovi
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, ADODB,
StdCtrls;
type
TForm1 = class(TForm)
btnPrimeiro: TButton;
btnAnterior: TButton;
btnProximo: TButton;
btnUltimo: TButton;
Edit1: TEdit;
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure btnPrimeiroClick(Sender: TObject);
procedure btnAnteriorClick(Sender: TObject);
procedure btnProximoClick(Sender: TObject);
procedure btnUltimoClick(Sender: TObject);
private
{ Private declarations }
ADOConexao: _connection;
ADORecordSet: _Recordset;
procedure Mostra;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses
ADOInt;
procedure TForm1.FormCreate(Sender: TObject);
begin
ADOConexao := CoConnection.Create;
ADORecordSet := CoRecordSet.Create;
ADOConexao.CursorLocation := adUseClient;
ADORecordSet.CursorLocation := adUseClient;
ADORecordSet.CursorType := adOpenStatic;
ADORecordSet.LockType := adLockOptimistic;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
ADORecordSet.Close;
ADORecordSet := nil;
ADOConexao.Close;
ADOConexao := nil;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
ADOConexao.Open(´Provider=Microsoft.Jet.OLEDB.4.0;Data Source=bd1.mdb;Persist Security Info=False´, ´´, ´´, 0);
ADORecordSet.Open(´select nome from tabela´, ADOConexao, adOpenStatic, adLockOptimistic, -1);
if ADORecordSet.RecordCount > 0 then
Mostra;
end;
procedure TForm1.Mostra;
begin
Edit1.Text := VarToStr(ADORecordSet.Fields[´nome´].Value);
end;
procedure TForm1.btnPrimeiroClick(Sender: TObject);
begin
if ADORecordSet.AbsolutePosition <= 1 then
Exit;
ADORecordSet.MoveFirst;
Mostra;
end;
procedure TForm1.btnAnteriorClick(Sender: TObject);
begin
if ADORecordSet.AbsolutePosition <= 1 then
Exit;
ADORecordSet.MovePrevious;
Mostra;
end;
procedure TForm1.btnProximoClick(Sender: TObject);
begin
if (ADORecordSet.AbsolutePosition = ADORecordSet.RecordCount) or (ADORecordSet.AbsolutePosition = -1) then
Exit;
ADORecordSet.MoveNext;
Mostra;
end;
procedure TForm1.btnUltimoClick(Sender: TObject);
begin
if (ADORecordSet.AbsolutePosition = ADORecordSet.RecordCount) or (ADORecordSet.AbsolutePosition = -1) then
Exit;
ADORecordSet.MoveLast;
Mostra;
end;
end.Gostei + 0
07/11/2005
Levisants
Eu tentei de diversas maneiras de fazer associar o recordset com o dbgrid e até agora não consegui.
Gostei + 0
08/11/2005
Bon Jovi
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)