Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как через ADO опознать поле Identity? / 7 сообщений из 7, страница 1 из 1
21.08.2002, 18:17:27
    #32045012
Finder
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как через ADO опознать поле Identity?
Хожу через _RecordsetPtr (VC++) к таблице с неизвестной заранее структурой (никаких ADORecordBinding).
Как через ADO отловить, что поле является Identity (автоинкрементное) и соответственно,
его нельзя редактировать? Единственное отличие от других полей в том, что Identity-поле не имеет атрибута adFldUnknownUpdatable (другие поля почему-то имеют этот атрибут?)...
Подскажите, please!
...
Рейтинг: 0 / 0
22.08.2002, 12:09:53
    #32045144
Finder
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как через ADO опознать поле Identity?
Народ! Ну что же, никто не знает как это сделать, или вопрос слишком элементарный???
...
Рейтинг: 0 / 0
22.08.2002, 12:27:04
    #32045156
Pavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как через ADO опознать поле Identity?
Извини что пример на 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
22.08.2002, 12:36:00
    #32045168
akuz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как через ADO опознать поле Identity?
А adFldRowID не подходит?
...
Рейтинг: 0 / 0
22.08.2002, 12:49:15
    #32045181
Pavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как через ADO опознать поле Identity?
Невнимательно прочитал вопрос. Нужно добавить цикл по элементам коллекции Fields.
...
Рейтинг: 0 / 0
22.08.2002, 20:51:41
    #32045362
Bob
Bob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как через ADO опознать поле Identity?
Может тебе следует предусмотреть и вариант 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
23.08.2002, 11:12:48
    #32045443
Finder
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как через ADO опознать поле Identity?
Большое спасибо за ответы. Все заработало.
:)
Использование же встроенной поддержки GUID в MSSQL мне кажется не совсем целесообразным, т.к. это может вызвать проблемы с переносимостью на другие СУБД, пусть уж лучше об этом голова болит у приложения.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как через ADO опознать поле Identity? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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