powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как через ADO опознать поле Identity?
7 сообщений из 7, страница 1 из 1
Как через ADO опознать поле Identity?
    #32045012
Finder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хожу через _RecordsetPtr (VC++) к таблице с неизвестной заранее структурой (никаких ADORecordBinding).
Как через ADO отловить, что поле является Identity (автоинкрементное) и соответственно,
его нельзя редактировать? Единственное отличие от других полей в том, что Identity-поле не имеет атрибута adFldUnknownUpdatable (другие поля почему-то имеют этот атрибут?)...
Подскажите, please!
...
Рейтинг: 0 / 0
Как через ADO опознать поле Identity?
    #32045144
Finder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ! Ну что же, никто не знает как это сделать, или вопрос слишком элементарный???
...
Рейтинг: 0 / 0
Как через ADO опознать поле Identity?
    #32045156
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извини что пример на VB, но тутвсе наглядно, а дельфей под рукой нет.

Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.ActiveConnection = CurrentProject.Connection
rs.CursorLocation = adUseClient
rs.CursorType = adOpenStatic
rs.LockType = adLockOptimistic
rs.Source = "select * From dbo.Products"
rs.Open
MsgBox rs.Fields("Product_id").Properties("IsAutoIncrement")
rs.Close
Set rs = Nothing
...
Рейтинг: 0 / 0
Как через ADO опознать поле Identity?
    #32045168
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А adFldRowID не подходит?
...
Рейтинг: 0 / 0
Как через ADO опознать поле Identity?
    #32045181
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Невнимательно прочитал вопрос. Нужно добавить цикл по элементам коллекции Fields.
...
Рейтинг: 0 / 0
Как через ADO опознать поле Identity?
    #32045362
Bob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Bob
Гость
Может тебе следует предусмотреть и вариант ISROWGUIDCOL или ISCOMPUTED?

Не совсем по теме но может пригодится (когда-то для чего-то делал):

select c.name, t.name as xtype, c.length, c.isnullable,
com.text as vdefault,
columnproperty(c.id,c.name,'ISIDENTITY')
+10*columnproperty(c.id,c.name,'ISROWGUIDCOL')
+100*columnproperty(c.id,c.name,'ISCOMPUTED') as IsComp
from syscolumns c
join systypes t on c.xtype=t.xtype and c.xusertype=t.xusertype
left outer join syscomments com on c.cdefault = com.id and com.colid = 1
where c.id=object_id('<table>')
...
Рейтинг: 0 / 0
Как через ADO опознать поле Identity?
    #32045443
Finder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо за ответы. Все заработало.
:)
Использование же встроенной поддержки GUID в MSSQL мне кажется не совсем целесообразным, т.к. это может вызвать проблемы с переносимостью на другие СУБД, пусть уж лучше об этом голова болит у приложения.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как через ADO опознать поле Identity?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]