Можно по рекордсету определить default value поля (MSSQL)?

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Alter
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 01.03.2005 (Вт) 14:51

Можно по рекордсету определить default value поля (MSSQL)?

Сообщение Alter » 01.03.2005 (Вт) 15:03

Добавляется запись при помощи формы (label - название поля, textbox - значение), хотелось бы, если у какого-то поля имеется default value, проставлять это значение сразу в textbox.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 01.03.2005 (Вт) 15:05

Когда делаешь AddNew, в этих полях уже будут значения, просто считываешь их.
Lasciate ogni speranza, voi ch'entrate.

Alter
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 01.03.2005 (Вт) 14:51

Сообщение Alter » 01.03.2005 (Вт) 15:12

К сожалению, нет :(. Если поле с дефолтом и Not Null, то значение Empty, если дефолт и Null, то значение Null.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 01.03.2005 (Вт) 16:17

Хм. Если только вытаскивать из метаданных сиквела - либо напрямую, либо через ADOX. Запоминать, а потом подставлять.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 01.03.2005 (Вт) 17:06

Значения по умолчанию для полей таблицы можно узнать с помощью хранимой процедуры sp_columns...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 02.03.2005 (Ср) 8:40

В OpenSchema есть много всего, может там есть и эта инфа?
Lasciate ogni speranza, voi ch'entrate.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 02.03.2005 (Ср) 9:01

alibek писал(а):В OpenSchema есть много всего, может там есть и эта инфа?


С adSchemaColumns - похоже.

Но, вообще-то, скорей всего для этого вызовется та-же хранимка.
А по хорошему лучше написать свою, которая вернет с сервера только нужные данные и в нужном виде...

А вообще - надо учитывать что если поле новой записи Recordset-a не изменялось, то в нем и так сохранится значение по умолчанию. То есть значение по умолчанию нужно только для того чтобы отобразить его на форме.

Я делаю достаточно просто:

Код: Выделить всё
Sub Form_Load()
    Set ExEdit = New ExEdit
    With ExEdit
        Set .Form = Me
       
        .Source = "SELECT * FROM tblКонтрагенты WHERE ID_Контрагента=" & m_iID_Контрагента
       
        .AddTextBox txКонтрагент, lbКонтрагент, "Контрагент"

        .AddComboBox(cbСтатус, lbСтатус, "Статус", True, ExValueList, "Т;Действующий;Д;Дилер;Р;Рег.представитель;Б;Бывший;Ч;Черный список").DefaultValue = "Т"
       
        .AddComboBox(cbID_Страны, lbID_Страны, "ID_Страны", True, ExTableOrQuery, "SELECT ID_Страны, Страна FROM tblСтраны ORDER BY 2").DefaultValue = 1
        .AddComboBox(cbID_СубФедерации, lbID_СубФедерации, "ID_СубФедерации", True, ExTableOrQuery, "SELECT ID_СубФедерации,СубъектФедерации FROM tblСубъектыФедерации ORDER BY 2").DefaultValue = 10

        .AddTextBox txИНН, lbИНН, "ИНН"
        .AddTextBox txОКПО, lbОКПО, "ОКПО"
        .AddTextBox txОКОНХ, lbОКОНХ, "ОКОНХ"
        ...
        .Read
    End With

End Sub

То бишь значения по умолчанию задаю сам, данным образом.
Но тут применяется мой класс, который берет на себя всю дальнейшую обработку ввода. Но, в принципе, несложно было бы в него добавить чтобы он считывал значения по умолчанию из базы (можно, кстати, им-же считавать Caption для Label и прочие вещи). Хотя даже и не знаю - стоит ли - для меня и так несложно...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

    TopList