|
Тема
|
Delphi & MS SQL Server
|
|
Автор |
Johnito (непознат) |
Публикувано | 27.12.07 10:59 |
|
Колеги, моля за вашите съвети и опит. Боря се като прасе с тиква с едно приложение писано на Delphi 5, което към момента работи чудесно с Firebird. Базите данни обаче започнаха да нарастват и сега на дневен ред е преминаване към MS SQL Server (2005). И както се казва - по принцип работи :) Имам обаче следния проблем. Когато се използва TTable и на пропъртито IndexName се зададе име на индекс (съществуващ индекс, често дори ключ на съответната таблица) при Open на таблицата гърми. Казва обикновено Table not indexed или някоя подобна щуротия. От друга страна ако на името на индекса се зададе пълно име, например dbo.xxx - проблем няма. В базата са зададени навсякъде индекси, права на достъп и т.н., за да не е необходим този owner. Моля помогнете.
Предварително благодаря
| |
Тема
|
Re: Delphi & MS SQL Server
[re: Johnito]
|
|
Автор | Ивaнчo (Нерегистриран) |
Публикувано | 31.12.07 08:37 |
|
Предполагам, че можеш да сложиш едно TQuery вместо TTable. Може и да е "мания", но поне за мен, основни правила при работа с MS SQL са: използване задължително на ADO компоненти - тези с делфи вършат идеална работа, и никога използване на TTable. Да отвориш "цялата" таблица, не е може би най-добрата практика. Винаги може в Query да си зададеш твърдо кой индекс да се използва, а още по-добре ако всичко това го направиш на съхранени процедури.
| |
Тема
|
Re: Delphi & MS SQL Server
[re: Ивaнчo]
|
|
Автор |
Johnito (непознат) |
Публикувано | 02.01.08 11:20 |
|
Е да де, но както казах програмата отдавна е написана и постепенно се развива. Но не може и да се мисли за подмяна на компоненти. Това е абсурд - програмата е голяма. Другото с други компоненти... ние много добре си го знаем. :)
| |
Тема
|
Re: Delphi & MS SQL Server
[re: Johnito]
|
|
Автор | vido (Нерегистриран) |
Публикувано | 02.01.08 17:27 |
|
Прегледай как е настроено BDE-то и елиаса който използваш там. Юзера който е конектнат същия ли е? И аз използвам ADO за MSSQL, така че конкретни съвети нямам. А ТTable не отваря цялата таблица все пак. Фечва само част от редовете. После фечва други ако е необходимо. В краен случай реплейсни името на индекса в DFM-тата с това заедно с юзера за да не ровиш форма по форма. Има текстови редактори, които реплейсват с помоща на регулярен израз. Аз използвам PSPad. Проблема е че трябва да го направиш за всеки DFM файл. Реплайса за много файлове не работи с RE . Кръпка е, ама в краен случай...
| |
Тема
|
Re: Delphi & MS SQL Server
[re: vido]
|
|
Автор | Ивaнчo (Нерегистриран) |
Публикувано | 11.01.08 23:03 |
|
От 1999 година (ако не и по-отдавна) не работя с TTable и BDE, така че не помня дали TTable взима всички записи или не, а и аз не говорех за него, но със сигурност ако се използва TAdoTable вместо TAdoCommand или TADOQuery - забавянето ще е чувствително. Най-чисто е да се използват ADO интерфейсите (ADOInt._Recordset и т.н.), да не се използват никакви Делфийски Table и Query, поне ако иска нищо да не гърми, и най-вече да има бързодействие (поне с 80-100% при големи масиви).
| |
|
|
|
|