Форум: "Базы";
Текущий архив: 2003.05.19;
Скачать: [xml.tar.bz2];
ВнизADO и Excel Найти похожие ветки
← →
DmitryNekl (2003-04-28 13:59) [0]Помогите, пожалуйста!
Учусь работать с ADO. Хочу подсоединиться к книге Excel и перекачать оттуда инфу. Вроде понятно, как это сделать, кроме одного: у компонента ADOTable есть свойство TableName.
Что это в случае с Excel и где его взять?
Заранее спасибо! :)
← →
sniknik (2003-04-28 14:08) [1]листы, вроде этого [Sheet1$].
книга - база.
листы - таблицы
← →
KoluChi (2003-04-28 14:30) [2]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();
← →
DmitryNekl (2003-04-28 14:31) [3]А вот не работает... Соединение с файлом происходит, а в выпадающем списке в свойстве TableNAme - пусто :(
← →
KoluChi (2003-04-28 14:37) [4]А ручками написать?
Советую пользоваться Query.
← →
sniknik (2003-04-28 14:39) [5]А без кавычек? так к примеру
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Книга 1.xls;Extended Properties=Excel 5.0;Persist Security Info=False
и проверь что у тебя ADOTable с коннектом связан (ADOConnection).
← →
sniknik (2003-04-28 14:40) [6]KoluChi © (28.04.03 14:37)
Query отстой, ADODataSet рулез.
← →
DmitryNekl (2003-04-28 14:42) [7]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:51) [8]ADOTable2.TableName:="[catalog$]";
> И не работает... Кстати, а зачем после имени листа "$"?
а сделай ADOConnection.GetTableNames(); и посмотри что выдаст.
← →
DmitryNekl (2003-04-28 14:53) [9]Всем спасибо, разобрался! Заработало :))))
← →
KoluChi (2003-04-28 14:58) [10]
> sniknik © (28.04.03 14:40)
> Query отстой, ADODataSet рулез.
Та же байда, только вид сбоку. Я не думаю, что в данном случае с Excel, нужно изменять данные. Все не Table.
← →
sniknik (2003-04-28 15:17) [11]KoluChi © (28.04.03 14:58)
Та же байда, только вид сбоку.
не сбоку а вообще "довесок", что ADOTable что ADOQuery оба потомки от ADODataSet. причем с ограничениями свойств и только для "облегчения перехода" к "истинным" ценностям (ADODataSet, ADOCommand) :о)) (почти дословно из руководства).
и в данном случае (да и вообще), использование ADOQuery то же самое что и ADOTable (не по стилю работы конечно а по "устаревшести").
(не говоря уже о том что с Query совсем нельзя сравнивать)
а если понимаеш что это "Та же байда" зачем советовать?
← →
KoluChi (2003-04-28 16:15) [12]Я же не настаиваю, а советаю. Разговор ни о чем...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.05.19;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c