Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.09.30;
Скачать: [xml.tar.bz2];

Вниз

Открыть 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.046 c
1-1182945577
IntruderLab
2007-06-27 15:59
2007.09.30
Назначить горячую клавишу


3-1180199006
Helpers
2007-05-26 21:03
2007.09.30
Выборка из результата запроса


15-1188894095
shellbox__
2007-09-04 12:21
2007.09.30
Переустановить windows.


2-1188371743
novill
2007-08-29 11:15
2007.09.30
Туплю после отпуска. Помогите с SQL запросом


15-1188140037
leonidus
2007-08-26 18:53
2007.09.30
Разыскивается Янис Прасоль





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский