Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > ADO и Excel


Автор: Sponger 24.6.2006, 07:13
Подслючаюсь к Excel файлу через ADO.

Заполняю текстовое поле с помощью Edit ... Post. Вся колонка значение 2006

Часть полей заполняется, а на части выдает ошибку ПЕРЕПОЛНЕНИЕ ЧИЛОВОГО ПОЛЯ. 
Причем закономерности непонял. В Excel формат ячейки у всех одинаков.

В Delphi поле имеет формат WideString, длина 255.


Что это за ошибка и как ее избежать. 

Автор: sexton 24.6.2006, 09:03
покажи код 

Автор: Palladin 24.6.2006, 10:33
а через какую службу конектился?????? и что за едит??? dbedit чтоли? 

Автор: Sponger 26.6.2006, 06:59
Подключение к excel

Код

  with fmain.QExcel do begin
    Active := false;
    ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + sFileName +
                        ';Extended Properties=Excel 8.0;Persist Security Info=False';
    SQL.Clear;
    SQL.Add('Select * From [sheet1$]'); 
    Active := True;
  end;


Вот этот код выполняется в цикле.
Код

      fmain.QExcel.Edit;
      fmain.QExcel.FieldByName('yearDate').AsString := fmain.shipment.FieldByName('yearDate').AsString;
      fmain.QExcel.Post;


Вот во время fmain.QExcel.Post; и выдает ошибку, причем не на каждом поле, а как то выборочно. 

Автор: Akella 26.6.2006, 07:59
1. Вопрос не в ту тему, нужно было, наверное, в "Базах данных" задавает его.
2. Лучше всего, по моему скромному мнению, делать через COM. 

Автор: Sponger 26.6.2006, 08:23
Я тоже прихожу к такому выводу. 

PS. А в другую тему задавать вопрос не так результативно как сюда. Ну не любят туда ходить. 

Автор: ~FoX~ 26.6.2006, 08:39
Код

fmain.shipment.FieldByName('yearDate').AsString;

А кто такой shipment? 

Автор: Sponger 26.6.2006, 09:44
Таблица из базы Access. 

Я не складываю Query в датамодуль а кинул на форму. Это поле равно 2006. Ошибки нет я проверял.

PS Просили код я и выдернул из проекта.  

Автор: YurikGL 26.6.2006, 22:16
Не работайте с Excel через ADO... это очень медленно и глючно... 

Автор: Palladin 27.6.2006, 00:36
Если БД не очень большая, то ADO+Access прекрасно подходит для этого, да и к тому же  ADO+Access очень легко освоить и именно с неё нужно начинать начинающим программистам(кем я и являюсьsmile), не предложеш же ты человеку который пишет на делфе меньше года делать БД с помощью БДЕsmile 

Автор: YurikGL 28.6.2006, 19:40
Цитата(RooR @  27.6.2006,  00:36 Найти цитируемый пост)
 ADO+Access

ADO+Access - хорошо
ADO+Excel - плохо
BDE - тоже плохо
Interbase - хорошо smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)