Deze functie laat rommel achter in het geheugen. Ten minste dat is mijn conclusie.
Met deze functie open ik een access besstand.
Code:
procedure TFrm_Specificatie_data.Open_Gvsx;
var
OpenDialog : TOpenDialog;
FileNamepath : String;
begin
Screen.Cursor := crHourglass;
Main_frm_basis.StatusbarText_0 := 'Openen GVSX bestand...';
Main_frm_basis.Repaint;
OpenDialog := TOpenDialog.Create(Main_Frm_Basis);
With OpenDialog do
begin
try
Title := 'Open een GVSX bestand';
if Main_Frm_Basis.GVSX_RecentUsedFile = '' then
InitialDir := Main_Frm_Basis.ApplicatiePad
else
InitialDir := Main_Frm_Basis.GVSX_RecentUsedFile;
Options := [ofFileMustExist];
Filter := 'GVSX bestand (*.gvsx)|*.gvsx';
if not Execute then //cancel
begin
Screen.Cursor := crDefault;
end
else
begin
FileNamepath := ExtractFileDir(FileName);
FileName := ExtractFileName(FileName);
with DataModule_ctrl_gvsx.ODBCConnection_gvsx do
begin
Connected := False;
Params.Clear;
Driver := Main_frm_Basis.ODBC_Params[0];
Params.Add(Main_frm_Basis.ODBC_Params[1]);
Params.Add(Main_frm_Basis.ODBC_Params[2]);
Params.Add('DBQ=' + FileNamepath + '\' + FileName + ';');
Params.Add('DefaultDir=' + FileNamepath + ';');
Params.Add(Main_frm_Basis.ODBC_Params[5]);
Params.Add(Main_frm_Basis.ODBC_Params[6]);
Params.Add(Main_frm_Basis.ODBC_Params[7]);
Params.Add(Main_frm_Basis.ODBC_Params[8]);
Params.Add(Main_frm_Basis.ODBC_Params[9]);
try
Connected:=True;
Main_Frm_Basis.StatusbarText_1 := Main_Frm_Basis.Titel + ' - [ ' + FileName + ' ]';
Main_Frm_Basis.Logging.WriteToLog('Informatie | Openen GVSX bestand: ' + FileNamepath + '\' + FileName);
Main_Frm_Basis.GVSX_RecentUsedFile := FileNamepath;
Main_frm_basis.StatusbarText_0 := 'Het bestand "' + FileName + '" is geopend.';
Main_frm_basis.Repaint;
except
Screen.Cursor := crDefault;
//logging...
end;
end;
Screen.Cursor := crDefault;
end;
finally
Free;
end; // try
end; //opendialog
end;
Vervolgens komt de volgende functie. Hiermee zet ik de gegevens van 1 veld van de Access database in een memo.
Het vreemde is dat behalve de data van het Access veld aan het eind een extra regel in de memo komt te staan. Deze regel bevat het pad waarin het Access bestand staat.
Code:
procedure TFrm_Specificatie_data.Zet_template_file_in_memo;
begin
Screen.Cursor := crHourglass;
Memo_Template_File_tmp.Clear;
if Check_tablenames('sys_rights_prjcts_templates') then
begin
with DataModule_ctrl_gvsx.SQLQuery_gvsx do
begin
Close;
SQL.Clear;
SQL.Add('select template_file');
SQL.Add('from sys_rights_prjcts_templates');
SQL.Add('where');
SQL.Add('user_id = ''' + ComboBox_active_user.Text + '''');
SQL.Add('and');
SQL.Add('template_id = ''' + ComboBox_Active_template.Text + '''');
Active := True;
First;
while not eof do
begin
Memo_Template_File_tmp.Lines.Add(FieldByName('TEMPLATE_FILE').AsString);
next;
end;
end;
end;
Screen.Cursor := crDefault;
end;
Wat gaat mis bij het openen van het Access bestand?
En dan nu op naar oud en nieuw.
Bookmarks