Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.30;
Скачать: CL | DM;

Вниз

Открыть XLS, как DataSet   Найти похожие ветки 

 
RomanH ©   (2007-05-25 10:24) [0]

Здраствуйте мастера, хочу импортировать xls файл, через компоненты ADO в Firebird, методом
while not ADOTable1.EOF do
begin
   Блок вставки FIBQuery....
end;.

Проблема в том что ADOTable, открывается только в том случае, если для ADOTable определены потомки TFields.
То есть необходимо сделать, добл клик на компоненте ADOTable, а затем правый клик мышью-Add all fields.
Вопрос как мне создать TFields-потомков для ADOTable,программно. Спасибо.
А может другой способ открывать xls как DataSet.


 
ЮЮ ©   (2007-05-25 10:29) [1]

Если этого не делать, и оставить коллекцию полей ПУСТОЙ, то после ADOTable1.Open они там и так появятся.


 
ЮЮ ©   (2007-05-25 10:30) [2]

З.Ы. Это к То есть необходимо сделать, добл клик на компоненте ADOTable,
> а затем правый клик мышью-Add all fields.


 
RomanH ©   (2007-05-25 10:36) [3]

Если предварительно не создавать TFields.Получаетс\ что could not convert null into string
procedure TForm1.BitBtn2Click(Sender: TObject);
var str:string;
begin
    str:="Provider MSDASQL.1;Password="";Persist Security Info=True;"+
    "Data Source=Ôàéëû Excel;Mode=Read;Extended Properties="DSN=Ôàéëû Excel;"+
    "DBQ=c:\price;DriverId=790;MaxBufferSize=2048;PageTimeout=5;";Initial Catalog=c:\price";

    ADOTable1.Close;
    ADOConnection1.Close;
    ADOConnection1.ConnectionString:=str;
    ADOConnection1.DefaultDatabase:="c:\price";
    ADOConnection1.Connected;
    ADOTable1.Open;

end;


 
ЮЮ ©   (2007-05-25 10:45) [4]

для того чтобы "затем правый клик мышью-Add all fields" должны быть настроены компоненты в IDE и тогда только  

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
 ADOTable1.Open;
end;

Похоже настройки значительно отличаются, иначе бы и под IDE огреб бы по полной программе.

> could not convert null into string
А без Delphi? Может это тоько под отладчиком сказывается?


 
Jan1 ©   (2007-05-25 10:52) [5]

Я бы заюзал Jet.

Provider=Microsoft.Jet.OLEDB.4.0;Data Source="ПУТЬ К ФАЙЛУ";Persist Security Info=False;Extended Properties=Excel 8.0

Потом выбросил бы ADOTable, взял бы ADODataset и обрашался бы к данным так:

select * from [Page 1$]


 
RomanH ©   (2007-05-25 14:05) [6]


> Jan1 ©

Спасибо это мне помогло.
var str:string;
begin
    str:="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="c:\price.xls";Persist Security Info=False;Extended Properties=Excel 8.0";
    ADOConnection1.Close;
    ADOConnection1.ConnectionString:=str;
    ADOConnection1.Connected;
    ADODataSet1.CommandText:="select * from [Sheet 1$]";
    ADODataSet1.Open;
end;



Страницы: 1 вся ветка

Текущий архив: 2007.09.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
6-1170223586
slartus
2007-01-31 09:06
2007.09.30
Список FTP-серверов в локальной сети


11-1172563692
Fregl
2007-02-27 11:08
2007.09.30
Отлов ("перехват") событий VCL приложением из KOL DLL


15-1188831356
@!!ex
2007-09-03 18:55
2007.09.30
Самара. Кто знает где можно найти вакансию дизайнера?


15-1188909994
Denis_
2007-09-04 16:46
2007.09.30
Палец заменит кредитку?


15-1188728955
fisher
2007-09-02 14:29
2007.09.30
хорошие сайты с фильмами