Главная страница
    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.013 c
15-1142726262
ronyn
2006-03-19 02:57
2006.04.23
ICQ recovery password


15-1144234731
DelphiN!
2006-04-05 14:58
2006.04.23
Ускорить выполнение выборки из БД firebird


15-1144059580
balepa
2006-04-03 14:19
2006.04.23
Как можно "Ваше имя" сменить ?


3-1141039805
ViktorZ
2006-02-27 14:30
2006.04.23
Накопление по разным базам.


1-1142858068
nastya
2006-03-20 15:34
2006.04.23
объявить константы в TypeLibrary





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