Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Открыть XLS, как DataSet [D7, FB 2.0]


RomanH ©   (2007-05-25 10:24:00) 

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

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


RomanH   (2007-05-25 14:05:00) [1]


> 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;


Jan1   (2007-05-25 10:52:00) [2]

Я бы заюзал Jet.

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

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

select * from [Page 1$]


ЮЮ   (2007-05-25 10:45:00) [3]

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

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

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

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


RomanH   (2007-05-25 10:36:00) [4]

Если предварительно не создавать 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:30:00) [5]

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


ЮЮ   (2007-05-25 10:29:00) [6]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо