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

start [/forum/topic.php?fid=46&tablet=1&tid=1820907]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
23ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 298ms |

| 0 / 0 |
