
Debido a las mejoras de
Microsoft Office (versión 2007), desaparece la parte de edición y guardado de las tablas en
.dbf (DBase IV). Por eso, he creado una pequeña aplicación con delphi que permite realizar una series de consultas SQL y además permite editar la tabla en sí. De esta manera podemos seguir conservando nuestros ficheros DBase y con una aplicación sencilla realizar potentes consultas sobre la table mediante SQL. La aplicación utiliza los componentes típicos de conexión a la BD, y mediante ADO realizo la conexión sobre una carpeta para simular el ConnectionString hacia un ODBC con la ruta del los ficheros DBF. Luego tengo una pequeña grid enlazada al ClientDataSet que recoge los datos y los muestra. Aquí os dejo unas imágenes de la aplicación
Thundax DBF Editor.


Aquí os dejo parte del código fuente para que veáis lo simple que es la aplicación:
procedure TForm1.Button1Click(Sender: TObject);
var
strDBFolder, TextExecute: string;
begin
if Edit1.text = '' then
exit;
if listbox1.Count = 0 then
exit;
Screen.Cursor := crSQLWait;
strDBFolder := Edit1.text;
ADOConnection1.Close;
ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' +
strDBFolder +
';Extended Properties=dBASE IV;User ID=' + Edit2.text + ';Password=' + Edit3.text + ';';
ADOConnection1.Open;
if SelectedText = '' then
TextExecute := SynEdit1.text
else
TextExecute := SelectedText;
if TextExecute = '' then
exit;
if not AnsiContainsStr(AnsiUpperCase(TextExecute), 'SELECT') then
ADOConnection1.Execute(TextExecute)
else
begin
ADOQuery1.Close;
ClientDataSet1.close;
ADOQuery1.SQL.Text := TextExecute;
ADOQuery1.Open;
ClientDataSet1.open;
end;
ADOConnection1.Close;
Screen.Cursor := crDefault;
StatusBar1.SimpleText := 'Done.';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if clientdataset1.Delta <> null then
if messagedlg('Save changes ? ', mtConfirmation, mbOKCancel, -1) = mrOK then
clientdataset1.ApplyUpdates(0)
else
abort;
end;
Formatos de archivo que permite Excel 2007.
Hay una gran cantidad de archivos en mi computadora. Pero ayer por la noche no eran demasiado archivos y programas relacionados con archivos de acceso. Por suerte para mí un amigo me llamó y por casualidad me contó - corrupted dbf. El software me devolvió acceder a los archivos dañados y lo hizo de forma gratuita como seguí mente. Me alegro de esta herramienta.
ReplyDeleteThank you Alex. Is good to know that the application is useful.
ReplyDeleteJordi tendras idea de como usar dbf's en lazarus??
ReplyDelete