Главная страница
    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.04 c
15-1188992537
Desdechado
2007-09-05 15:42
2007.09.30
В чем смысл жизни?


2-1188545064
_Iv_
2007-08-31 11:24
2007.09.30
Массив и ресурсы(*.res)


3-1179895908
RomanLN
2007-05-23 08:51
2007.09.30
Как организовать запрос для DBGrid


15-1188552281
Рамиль
2007-08-31 13:24
2007.09.30
Связка Windows 2003 64 bit + Oracle 10g 64 bit + Visual Studio


2-1188479226
ANTPro
2007-08-30 17:07
2007.09.30
RTTI





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский