Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.04.23;
Скачать: [xml.tar.bz2];

Вниз

Внутренняя ошибка программирования объектов (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.012 c
4-1137778074
Galiaf
2006-01-20 20:27
2006.04.23
Узнать частоту обновления экрана и сменить её.


15-1143871258
boriskb
2006-04-01 10:00
2006.04.23
Кто то еще помнит.


15-1144092909
Гарри Поттер
2006-04-03 23:35
2006.04.23
Вы можете поверить в "зеленых человечков"?


15-1143620715
Vlad Oshin
2006-03-29 12:25
2006.04.23
Помогите с входом в bios у Compaq


3-1141048241
Supklo
2006-02-27 16:50
2006.04.23
Как подключиться к Transbase





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