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

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

ADO и Excel [D5]


DmitryNekl ©   (2003-04-28 13:59:00) 

Помогите, пожалуйста!

Учусь работать с ADO. Хочу подсоединиться к книге Excel и перекачать оттуда инфу. Вроде понятно, как это сделать, кроме одного: у компонента ADOTable есть свойство TableName.
Что это в случае с Excel и где его взять?

Заранее спасибо! :)


KoluChi   (2003-04-28 16:15:00) [1]

Я же не настаиваю, а советаю. Разговор ни о чем...


sniknik   (2003-04-28 15:17:00) [2]

KoluChi © (28.04.03 14:58)
Та же байда, только вид сбоку.

не сбоку а вообще "довесок", что ADOTable что ADOQuery оба потомки от ADODataSet. причем с ограничениями свойств и только для "облегчения перехода" к "истинным" ценностям (ADODataSet, ADOCommand) :о)) (почти дословно из руководства).
и в данном случае (да и вообще), использование ADOQuery то же самое что и ADOTable (не по стилю работы конечно а по "устаревшести").
(не говоря уже о том что с Query совсем нельзя сравнивать)

а если понимаеш что это "Та же байда" зачем советовать?


KoluChi   (2003-04-28 14:58:00) [3]


> sniknik © (28.04.03 14:40)
> Query отстой, ADODataSet рулез.

Та же байда, только вид сбоку. Я не думаю, что в данном случае с Excel, нужно изменять данные. Все не Table.


DmitryNekl   (2003-04-28 14:53:00) [4]

Всем спасибо, разобрался! Заработало :))))


sniknik   (2003-04-28 14:51:00) [5]

ADOTable2.TableName:="[catalog$]";

> И не работает... Кстати, а зачем после имени листа "$"?
а сделай ADOConnection.GetTableNames(); и посмотри что выдаст.


DmitryNekl   (2003-04-28 14:42:00) [6]

2 KoluChi

А что такое db? Какой компонент?

Я что сделал... Разместил на форме ADOConnection и ADOTable. В ADOConnection подключился к файлу (ConnectionString) (причем успешно, тест проходит), ADOTable.Connection:=ADOConnection. ADOConnection.Connected:=True;

И потом смотрю ADOTable.TableNAme - пусто. При попытке ADOTable.Active:=True получаю: missing TableName property.

Попробовал все в виде кода:

ADOTable2.TableName:="catalog$";
ADOTable2.Active:=True;
ADOTable2.First;
For i:=0 to AdoTable2.RecordCount-1 do
begin
for j:=0 to ADOTable2.FieldCount-1 do
begin
Write(F, ADOTable2.Fields[j].AsString);
end;
Writeln(f,"");
AdoTable2.Next;
end;
ADOTable2.Active:=False;

И не работает... Кстати, а зачем после имени листа "$"?


sniknik   (2003-04-28 14:40:00) [7]

KoluChi © (28.04.03 14:37)
Query отстой, ADODataSet рулез.


sniknik   (2003-04-28 14:39:00) [8]

А без кавычек? так к примеру
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Книга 1.xls;Extended Properties=Excel 5.0;Persist Security Info=False

и проверь что у тебя ADOTable с коннектом связан (ADOConnection).


KoluChi   (2003-04-28 14:37:00) [9]

А ручками написать?
Советую пользоваться Query.


DmitryNekl   (2003-04-28 14:31:00) [10]

А вот не работает... Соединение с файлом происходит, а в выпадающем списке в свойстве TableNAme - пусто :(


KoluChi   (2003-04-28 14:30:00) [11]

db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp\temp.xls;Extended Properties=""Excel 8.0;""";
db.Open();
rs.ActiveConnection = db;
rs.CursorType = 3;
rs.LockType = 2;
rs.Source = "Select * from [Лист1$]";
rs.Open();
while rs.Eof()=0 do
//обрабатываем Recordset
rs.MoveNext();
end;
rs.Close();
db.Close();


sniknik   (2003-04-28 14:08:00) [12]

листы, вроде этого [Sheet1$].
книга - база.
листы - таблицы


Наверх

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