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

Вниз

Delphi, SQL, таблица, индекс... Проблемы...   Найти похожие ветки 

 
ki11er   (2003-03-03 13:38) [0]

код:
----------------------------------------------------------
Table := TTable.Create (nil); Table.DatabaseName := "MyDatabaseName"; Table.TableName := "MyTableName"; Table.IndexName := "MyIndexName"; Table.Open; bRes := Table.FindKey([2,22293]);
----------------------------------------------------------


База MSSQL, ODBC источник, Alias в BDE.
При открытии таблицы вываливается с сообщением "у таблицы нет индексов". Если индекс не включать, таблица открывается нормально и с ней можно работать.
С индексом работает (нормально открывается), если Table.TableName := "MyTableName";
заменить на
Table.TableName := "dbo.MyTableName";

Вопрос, можно ли как-то сделать так, чтобы обращаться к таблице не указывая овнера (т.е. dbo в данном случае)?

Спасибо.


 
ki11er   (2003-03-03 16:27) [1]

???


 
Delirium ©   (2003-03-03 16:41) [2]

Чтобы не указывать dbo. требуется добавить логину роль db_owner.

Чтобы небыло проблем с индексами, надо перестать пытаться работать с MSSQL средствами BDE, а перейти на ADO.


 
ki11er   (2003-03-03 16:53) [3]

>Чтобы не указывать dbo. требуется добавить логину роль db_owner.
Что значит "логину"? Сейчас я вообще пока работаю через "sa" без пароля. У него в ролях нет db owner...

>Чтобы небыло проблем с индексами, надо перестать пытаться >работать с MSSQL средствами BDE, а перейти на ADO.
Сорри за тупой вопрос, но я с ADO не работал. Можно ли через ADO работать с таблицами Paradox?



 
Delirium ©   (2003-03-03 17:02) [4]

У sa по умолчанию две роли: public и db_owner


 
ki11er   (2003-03-03 17:32) [5]

>У sa по умолчанию две роли: public и db_owner
тогда почему не работает?


 
Delirium ©   (2003-03-03 17:38) [6]

Возможно дело именно в той базе к котой ты обращаешься, сделай так: Enterprise Manager->MyServer->Security->Logins->sa->Properties->Database Access и посмотри что-там с базами и ролями.


 
ki11er   (2003-03-03 17:49) [7]

Я там и смотрю ;-)
как ты и сказал - там 2 роли public и db_owner.
может нужно другого пользователя создать?
я вот чего не понимаю, почему без индексов доступ есть, а с индексами - нет?


 
Delirium ©   (2003-03-03 17:59) [8]

>я вот чего не понимаю, почему без индексов доступ есть, а с индексами - нет?

Идексы подключаются внезависимости от твоего желания, это задача MSSQL. Ты попросту пытаешься навязать серверу свои правила посредством технологий морально-устаревшего BDE, из-за этого все проблемы.


 
ki11er   (2003-03-03 18:05) [9]

>из-за этого все проблемы.
а почему тогда они пропадают при "dbo.tablename" ?


 
Delirium ©   (2003-03-03 18:17) [10]

> а почему тогда они пропадают при "dbo.tablename" ?

Это проблема BDE, a не MSSQL



 
ki11er   (2003-03-03 18:22) [11]

>Это проблема BDE, a не MSSQL
Может быть, но я все же думаю, что простое изменение имени таблицы (больше ничего я не меняю) не приводит к изменению поведения BDE. Он же наверное выполняет те же самые действия?


 
sniknik ©   (2003-03-03 18:53) [12]

> Он же наверное выполняет те же самые действия?
возьми да посмотри. запусти Profiler из пакета MSSQL и посмотри на результирующие запросы в том и другом случае.

> Вопрос, можно ли как-то сделать так, чтобы обращаться к таблице не указывая овнера (т.е. dbo в данном случае)?
можно SELECT * FROM Table1 ORDER BY Field1 //индексированое поле, будет использоватся, нет создастся (временный)

мое мнение. проблема в том что ты тащищ устаревшие локальные методы на технологию клиент/сервер. оставь их для локальных баз.



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

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

Наверх




Память: 0.49 MB
Время: 0.013 c
3-63985
Кирилл
2003-02-28 11:20
2003.03.20
сортировка записей в базе данных


14-64306
Дмитрий К.К.
2003-03-04 06:13
2003.03.20
Именинники 4 марта


1-64149
Leo^Sun
2003-02-26 15:38
2003.03.20
Руссификация MessageDlg


14-64373
panov
2003-01-26 19:07
2003.03.20
О теме сообщения.


14-64285
phantom2040
2003-03-06 10:12
2003.03.20
Помогите с созданием инсталяции