![]() |
|
فيما يخص استيراد البيانات الى قاعدة المعطيات - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : فيما يخص استيراد البيانات الى قاعدة المعطيات (/showthread.php?tid=11184) |
فيما يخص استيراد البيانات الى قاعدة المعطيات - hadir aek - 22-12-2020 تحية طيبة وبعد السلام عليكم ورحمة الله لدي سؤال فيما يخص أستيراد البيانات: كيفية استيراد البيانات من الاكسيل الى قاعدة البيانات اكسس RE: فيما يخص استيراد البيانات الى قاعدة المعطيات - Delphi4Us - 22-12-2020 وعليكم السلام ورحمة الله الطرق مختلفة ممكن الاتصال بملف اكسل عبر مكونات Ado بكلاتا قاعدتي البيانات وبعدها ومن خلال Loop نقل البيانات او باستخدام طريقة مباشرة من هذا الملف الى الملف الاخر عن اولا عن طريق الدالة [size=small] [/size][/url] كود : DoCmd.TransferSpreadsheetمثال كود : {$APPTYPE CONSOLE}
{$R *.res}
uses
SysUtils,
ActiveX,
ComObj;
procedure ImportDataAccess(const AccessDb, TableName, ExcelFileName:String);
Const
acQuitSaveAll = $00000001;
acImport = $00000000;
acSpreadsheetTypeExcel9 = $00000008;
acSpreadsheetTypeExcel12 = $00000009;
var
LAccess : OleVariant;
begin
//create the COM Object
LAccess := CreateOleObject('Access.Application');
//open the access database
LAccess.OpenCurrentDatabase(AccessDb);//if the access database doesn't exist use the NewCurrentDatabase method instead.
//import the data
LAccess.DoCmd.TransferSpreadsheet( acImport, acSpreadsheetTypeExcel9, TableName, ExcelFileName, True);
LAccess.CloseCurrentDatabase;
LAccess.Quit(1);
end;
begin
try
CoInitialize(nil);
try
ImportDataAccess('C:\Data\Database1.accdb','Sales','C:\Data\Sales.xlsx');
Writeln('Done');
finally
CoUninitialize;
end;
except
on E:EOleException do
Writeln(Format('EOleException %s %x', [E.Message,E.ErrorCode]));
on E:Exception do
Writeln(E.Classname, ':', E.Message);
end;
Writeln('Press Enter to exit');
Readln;
end.والمثال الثاني عن طريق ado components كود : uses
Data.DB,
Data.Win.ADODB,
SysUtils,
ActiveX,
ComObj;
procedure ImportDataADO(const AccessDb, TableName, ExcelFileName:String);
var
LAdoQueryExcel : TADOQuery;
LADOAccesCmd : TADOCommand;
begin
LAdoQueryExcel:=TADOQuery.Create(nil);
LADOAccesCmd:=TADOCommand.Create(nil);
try
//set the connection string for access
LADOAccesCmd.ConnectionString:=Format('Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%s;',[AccessDb]);
LADOAccesCmd.Parameters.Clear;
LADOAccesCmd.CommandText:='INSERT INTO Sales (id,name) VALUES (:id,:name)';
LADOAccesCmd.ParamCheck:=False;
//set the connection string for excel
LAdoQueryExcel.ConnectionString:=Format('Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%s;Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1"',[ExcelFileName]);
LAdoQueryExcel.SQL.Add('SELECT * FROM [Sheet1$]');
LAdoQueryExcel.Open;
while not LAdoQueryExcel.eof do
begin
LADOAccesCmd.Parameters.ParamByName('id').Value := LAdoQueryExcel.FieldByname('id').AsInteger;
LADOAccesCmd.Parameters.ParamByName('name').Value := LAdoQueryExcel.FieldByname('name').AsString;
LADOAccesCmd.Execute;
LAdoQueryExcel.Next;
end;
finally
LAdoQueryExcel.Free;
LADOAccesCmd.Free;
end;
end;
begin
try
CoInitialize(nil);
try
ImportDataADO('C:\Datos\Database1.accdb','Sales','C:\Datos\Sales.xlsx');
Writeln('Done');
finally
CoUninitialize;
end;
except
on E:EOleException do
Writeln(Format('EOleException %s %x', [E.Message,E.ErrorCode]));
on E:Exception do
Writeln(E.Classname, ':', E.Message);
end;
Writeln('Press Enter to exit');
Readln;
end.RE: فيما يخص استيراد البيانات الى قاعدة المعطيات - محمد عبد العزيز - 23-12-2020 كيف أنقل الجداول من excel الى قاعدة paradox ؟ http://delphi4arab.net/forum/showthread.php?tid=269 دلفي و الأكسل http://delphi4arab.net/forum/showthread.php?tid=3299 Excel من دلفي عبر ADO http://delphi4arab.net/forum/showthread.php?tid=2851 مشكلة في تحويل ملف excel الى قاعدة بيانات Paradox http://delphi4arab.net/forum/showthread.php?tid=1860 كيف يتم نقل محتويات خلايا معينة من اكسل الى اكسس عن طريق ado http://delphi4arab.net/forum/showthread.php?tid=2368 |