Как через ADO узнать является ли текущее поле Primery Key?

turonix
Дата: 30.09.2005 01:44:58
Здравствуйте! Не подскажите каким образом можно средстивами ADO узнать является ли текущее поле в таблице первичным ключем? Читая MSDN я пришел к выводу, что для этого используется ADOX но как им пользоватся???
ANTIVIR
Дата: 30.09.2005 09:00:09
turonix
Здравствуйте! Не подскажите каким образом можно средстивами ADO узнать является ли текущее поле в таблице первичным ключем? Читая MSDN я пришел к выводу, что для этого используется ADOX но как им пользоватся???

MSDN )
АлексейЕ
Дата: 30.09.2005 13:09:56
ANTIVIR, вы не оригинальны

Function FieldIsKeyPrimary(strNameField As String, strNameTable As String) As Boolean
On Error Resume Next
    Dim cat As New ADOX.Catalog
    Dim objKey As ADOX.Key
    Dim objColumn As ADOX.Column

    cat.ActiveConnection = CurrentProject.Connection

    For Each objKey In cat.Tables(strNameTable).Keys
        If Err <> 0 Then Exit Function
        If objKey.Type = adKeyPrimary Then
            For Each objColumn In objKey.Columns
                If objColumn.Name = strNameField Then
                    FieldIsKeyPrimary = True
                    Exit For
                End If
            Next
        End If
        If FieldIsKeyPrimary Then Exit For
    Next
End Function
ANTIVIR
Дата: 30.09.2005 13:19:59
АлексейЕ
ANTIVIR, вы не оригинальны

В мире вообще мало где можно соригинальничать в данное время...
А по теме, ну если человек сказал что читал МСДН и пришел к выводу АДОКС , то почему не прочитать МСДН дальше, мне не понятно
АлексейЕ
Дата: 30.09.2005 13:30:00
ANTIVIR
АлексейЕ
ANTIVIR, вы не оригинальны

В мире вообще мало где можно соригинальничать в данное время...
А по теме, ну если человек сказал что читал МСДН и пришел к выводу АДОКС , то почему не прочитать МСДН дальше, мне не понятно

99% ответов на форуме можно прочитать в МСДН.
ANTIVIR
Дата: 30.09.2005 13:34:12
АлексейЕ

99% ответов на форуме можно прочитать в МСДН.

Согласен, но если человек уже полез и нашел инфу которая нужна там, то значит адокс он тоже мог бы найти
АлексейЕ
Дата: 30.09.2005 13:43:42
ANTIVIR, если каждый, кто залезет в МСДН, до победного конца будет рыть там ответы на свой вопрос, то форум зачахнет, а у нас свами будет большая конкуренция в виде все знающих аксесистов. :)
Конкуренция не на форуме, а в работе.

Но в принципе спорить не хочу. И к вам претензий не имею и ни кого "учить жизни" не хочу, просто решил вас подколоть, как вы подкололи turonix :)
ANTIVIR
Дата: 30.09.2005 13:59:27
АлексейЕ

И тут вы правы)
turonix
Дата: 01.10.2005 01:39:21
спасибо! Я попробую. А насчет MSDN... Да там черт ногу сломит! С какого бодунища его писали? Кроме того мне данную задачу надо реализовать в Delphi
Владимир Саныч
Дата: 01.10.2005 12:23:16
АлексейЕ
For Each objColumn In objKey.Columns

Наверно, если objKey.Columns.Count > 1, то можно возвращать False. Потому что в этом случае поле не является Primary Key, а в лучшем случае входит в его состав вместе с другими полями.