|
Тема
|
D7, tADOQuery, MSSQL. Except: "Insuficient key col
|
|
Автор |
NikB (минаващ) |
Публикувано | 06.03.09 14:06 |
|
D7, tADOQuery, MSSQL:
Exception: "Insufficient key column information for updating or refreshing"
когато се опитам да рефрешна tADOQuery с SQL.Text=
SELECT
dbo.vzn_sps_KlasSMC_Konsist.Id,
dbo.vzn_sps_KlasSMC_Konsist.Id_KlasSMC,
dbo.vzn_sps_KlasSMC_Konsist.Id_Konsist,
dbo.vzn_sps_KlasSMC.Name AS NameKlasSMC,
dbo.vzn_sps_Konsist.Name AS NameKonsist,
dbo.vzn_sps_KlasSMC_Konsist.ObemnoTeglo
FROM
dbo.vzn_sps_KlasSMC_Konsist
INNER JOIN dbo.vzn_sps_KlasSMC ON (dbo.vzn_sps_KlasSMC_Konsist.Id_KlasSMC = dbo.vzn_sps_KlasSMC.Id)
INNER JOIN dbo.vzn_sps_Konsist ON (dbo.vzn_sps_KlasSMC_Konsist.Id_Konsist = dbo.vzn_sps_Konsist.Id)
ползвам го в кофти контекст май :) (xDataSet е tADOQuery):
xRecNo := xDataSet.RecNo;
xDataSet.Refresh;
xDataSet.RecNo := xRecNo;
Как да го дебъгна и да видя каква информация му липсвала?
Редактирано от NikB на 06.03.09 14:08.
| |
Тема
|
Вероятно се бъгва, защото кофти се определя RecNo
[re: NikB]
|
|
Автор |
NikB (минаващ) |
Публикувано | 06.03.09 14:18 |
|
Вероятно се бъгва, защото няма начин да се опрадели RecNo.
(Тука са дефинирали нещо около тоя проблем: )
Как да го измисля това така, че да остава на същия запис?
Предлагат курсор на страната на сървъра, но не ми се струва добра идея.
| |
Тема
|
Re: D7, tADOQuery, MSSQL. Except: "Insuficient key col
[re: NikB]
|
|
Автор |
Mixy (@#$%^) |
Публикувано | 06.03.09 14:23 |
|
Защо не ползваш Dataset.Bookmark?
Mixy
| |
Тема
|
Щото бях забравил за тях
[re: Mixy]
|
|
Автор |
NikB (минаващ) |
Публикувано | 06.03.09 14:30 |
|
Щото бях забравил за тях. А съвсем наскоро ми се наложи да ги мърдам с един мултиселект DBGrid (май от другата ти тема :) )
Благодаря за напомнянето (променям едни юнити, които до сега не знаеха, че има ADO да работят и с него :)
| |
Тема
|
И bookmark не решава проблема - except е в Refresh
[re: Mixy]
|
|
Автор |
NikB (минаващ) |
Публикувано | 06.03.09 14:51 |
|
И bookmark не решава проблема - except е по време на изпълнението на tADOQuery.Refresh-a
Редактирано от NikB на 06.03.09 14:53.
| |
Тема
|
Re: И bookmark не решава проблема - except е в Refresh
[re: NikB]
|
|
Автор |
wqw (АзСъмЖив) |
Публикувано | 13.03.09 17:06 |
|
FYI, key columns се определят от CLUSTERED индексите на base таблиците, а не от PRIMARY KEY. Виж for each Index: Fields(Index).Properties("KEYCOLUMN").Value дали е True. Ако във SELECT не си включил всичките колони от CL INDEX на всичките base таблици, ADO се опитва да си ги дръпне behind the scene, но може да не успее -- SELECT-ни ги експлицитно.
cheers,
</wqw>
p.s. Виж в Profiler-а какво се случва.Редактирано от wqw на 13.03.09 17:23.
| |
|
|
|
|