Kenobi,
Cita:
Empezado por Kenobi
...Problema al obtener datos de MsAccess con componentes SQLdb nativos...resulta pues que un campo de las tablas es de tipo doble...esto conlleva que puede almacenar números: 13455 23564,45 523,2...me devuelve 13,46 235,64 52,32 respectivamente...
|
Revisa este código:
Código Delphi
[-]
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, db, sqldb, odbcconn, mssqlconn, FileUtil, Forms, Controls,
Graphics, Dialogs, DBGrids, StdCtrls, ShellApi;
type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
Button1: TButton;
ODBCConnection1: TODBCConnection;
SQLTransaction1: TSQLTransaction;
SQLQuery1: TSQLQuery;
DataSource1: TDataSource;
procedure Button1Click(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
private
public
end;
var
Form1: TForm1;
CRLF : Array [0..1] of Char = (#13,#10);
implementation
{$R *.lfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
ODBCConnection1.Driver := 'Microsoft Access Driver (*.mdb, *.accdb)';
ODBCConnection1.Params.Add('DBQ=D:\DB\Access\bd.mdb');
ODBCConnection1.Connected := True;
ODBCConnection1.KeepConnection := True;
SQLTransaction1.DataBase := ODBCConnection1;
SQLTransaction1.Action := caCommit;
SQLTransaction1.Active := False;
SQLQuery1.DataBase := ODBCConnection1;
SQLQuery1.UsePrimaryKeyAsKey := False;
SQLQuery1.Close;
SQLQuery1.SQL.Text := 'Select * from Tabla';
SQLQuery1.Open;
DataSource1.DataSet := SQLQuery1;
DBGrid1.DataSource := DataSource1;
DBGrid1.Columns.Items[0].Width:= 100;
DBGrid1.Columns.Items[1].Width:= 300;
DBGrid1.Columns.Items[2].Width:= 100;
DBGrid1.ReadOnly := true;
end;
procedure TForm1.DBGrid1CellClick(Column: TColumn);
var
C1 : Integer;
C2 : String;
C3 : Double;
Data : String;
begin
C1 := DBGrid1.Columns.Items[0].Field.AsInteger;
C2 := DBGrid1.Columns.Items[1].Field.AsString;
C3 := DBGrid1.Columns.Items[2].Field.AsFloat;
Data := Format(' Codigo = %d %s PrimerLapso = %s %s PrimerSubTotal = %g ',[C1, CRLF, C2, CRLF, C3]);
MessageDlg('Data', Data, mtinformation,[mbok],0);
end;
end.
El código anterior en Lazarus Versión 1.4.0 FPC 2.6.4 sobre Windows 7 Professional x32,
Realiza una consulta de la BD del Msg #4 en MS Access por medio de los componentes de acceso de datos SQLdb, como se muestra en la siguiente imagen:
Cita:
Empezado por Kenobi
...al final fue error mio...son muchas bases de datos y muchas tablas ...resulta que las mas actualizadas se les reformateo el valor en cuestión luego no coincide con su valor en bd anteriores...
|
Espero sea útil
Nelson.