Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.23;
Скачать: CL | DM;

Вниз

Внутренняя ошибка программирования объектов (Access)   Найти похожие ветки 

 
FH   (2006-02-27 17:03) [0]

работаю с mdb через ADO. делаю несколько селектов. Из под "Администраторов" все работает на ура. Из под остальных пользователей - возникают косяки: один селект 315 записей выполняется около 10 секунд, при чем приложение загружает проц на 100 процентов. второй селект не выполняется вообще, возвращает ошибку ODBC "Внутренняя ошибка программирования объектов". Третий выполняется без проблем. Может, кто сталкивался с подобным? WinXP SP2, mdac 2.81


 
FH   (2006-02-27 17:13) [1]

добавлю, что пользовал оба варианта, Jet и ODBC. Ничего не изменилось.


 
FH   (2006-02-27 17:26) [2]

еще добавлю, что Jet 3.51 не получается использовать, говорит, что формат базы не распознан, независимо от того, в каком формате база, Access 97, 2000 или 2003. работает только Jet 4.0


 
msguns ©   (2006-02-27 17:33) [3]

Если работает через 4, зачем дергать старые версии джета ?

Что именно не работает (текст запроса)


 
FH   (2006-02-27 17:42) [4]

procedure TMovieDetailesForm.GetMovie(id : integer);
begin
 dm.ds1.CommandText := "select stars.id, stars.name " +
                       "from stars inner join m_s on stars.id = m_s.s_id " +
                       "where m_s.m_id = " + IntToStr(id);
 try
   dm.ds1.Open;
 except
   on e : Exception do begin
     ShowMessage(e.Message);
     Exit;
   end;
 end;
   if dm.ds1.Recordset.RecordCount > 0 then begin
     dm.ds1.Recordset.MoveFirst;
     while not dm.ds1.Recordset.EOF do begin
       lbStars.Items.Add(dm.ds1.Recordset.Fields.Item["name"].Value);
       dm.ds1.Recordset.MoveNext;
     end;
   end;
 dm.ds1.Close;

 dm.ds1.CommandText := "select movies.id, movies.name as mname, movies.name2 as mname2, disks.id as did, disks.name as dname " +
                       "from (movies inner join disks on movies.disk_id = disks.id) inner join dtypes on disks.media = dtypes.id " +
                       "where movies.id = " + IntToStr(id);
 dm.ds1.Open;
 if dm.ds1.Recordset.RecordCount > 0 then begin
   dm.ds1.Recordset.MoveFirst;
   edId.Text := IntToStr(dm.ds1.Recordset.Fields.Item["id"].Value);
   edName.Text := VarToStr(dm.ds1.Recordset.Fields.Item["mname"].Value);
   edName2.Text := dm.ds1.Recordset.Fields.Item["mname2"].Value;
   edDiskId.Text := IntToStr(dm.ds1.Recordset.Fields.Item["did"].Value);
   edDiskName.Text := VarToStr(dm.ds1.Recordset.Fields.Item["dname"].Value);
 end;
 dm.ds1.Close;
end;

Вот код.
dm - это видимый из формы DataModule
ds1 - TADODataSet

Не работает первый запрос. Второй работает(если поменять их местами)


 
FH   (2006-02-27 17:45) [5]

Еще раз уточняю, что этот код не работает под пользователями-не администраторами, под админами работает.


 
FH   (2006-02-27 18:23) [6]

Ну помогите кто-нить!!!


 
Desdechado ©   (2006-02-27 19:12) [7]

как насчет выдачи прав на таблицы?


 
FH   (2006-02-28 20:06) [8]

ничего не крутил, все по умолчанию. Шас еще раз посмотрел, владелец всех обьектов - Admin, прога заходит в базу под ним, пароля нет.


 
FH   (2006-02-28 20:22) [9]

да вообще трудно предположить, что дело в правах. Из трех запросов один выполняется как надо, один не выполняется, и один выполняется с очень большой задержкой


 
FH   (2006-02-28 20:32) [10]

Еще добавлю, что на 2003 винде все работает и под админиами, и под юзверями. Бред какой-то. Завтра отнесу на работу, посмотрю, что будет на других машинах. Может, у меня в винде дело? не верю.



Страницы: 1 вся ветка

Текущий архив: 2006.04.23;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.042 c
2-1144405420
Sesh
2006-04-07 14:23
2006.04.23
Управление сторонним приложением


6-1136928251
HITMAN
2006-01-11 00:24
2006.04.23
Делаю так а почему то файл приходит весом 0 кб В чём ошибка???


2-1144250929
Vacek
2006-04-05 19:28
2006.04.23
Можно ли, используя delphi 5, сделать отправку почты из microsoft


4-1138865158
Aragon
2006-02-02 10:25
2006.04.23
Создание баллона


2-1144684983
que
2006-04-10 20:03
2006.04.23
GetMem & FillChar & Pointer ???