Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запись значения NULL в базу данных из переменной 
:(
    Опции темы
ancheville
Дата 4.2.2011, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 5.1.2011

Репутация: нет
Всего: нет



Есть такой код:

Код

Dim Connection As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=|DataDirectory|\Results.accdb")
Dim Command As New OleDbCommand("SELECT TOP 1 Код FROM Calc_results ORDER BY Код DESC", Connection)
Dim id As Integer
Dim a1 as Single

single.tryparse(textbox1.text, a1)

        Try
            Connection.Open()
            Dim dataReader As OleDbDataReader = Command.ExecuteReader
            dataReader.Read()
            id = dataReader.GetInt32(0)
        Catch ex As Exception
            Console.WriteLine(ex.Message)
        Finally
            Connection.Close()
        End Try


SQL = "INSERT INTO `Calc_results` (Код, `Твход_тр`) VALUES ('" & id + 1 & "' , '" & a1 & "')"
Connection.Open()
Command = New OleDbCommand(SQL, Connection)
Command.ExecuteNonQuery()
Connection.Close()


Если ничего не написано в Textbox1  то при выполнении вышеприведенного кода в базу данных пишется не пустое значение (NULL), а ноль. В моем случае нужно, чтобы писалось NULL. Как мне это сделать?

PM MAIL   Вверх
aminiy
Дата 4.2.2011, 08:42 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 4.9.2008

Репутация: нет
Всего: 1



А если

Код

INSERT INTO 'Calc_results' (Код, 'Твход_тр') VALUES (iff ( переменная id =0, Null, переменная id ) , abcdddd)



Это сообщение отредактировал(а) aminiy - 4.2.2011, 08:46
PM MAIL   Вверх
ancheville
Дата 4.2.2011, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 5.1.2011

Репутация: нет
Всего: нет



Цитата(aminiy @ 4.2.2011,  08:42)
А если

Код

INSERT INTO 'Calc_results' (Код, 'Твход_тр') VALUES (iff ( переменная id =0, Null, переменная id ) , abcdddd)

Я думаю, что этот код будет вставлять значение NULL в базу данных, если переменная будет равна 0. 
Мне нужно, чтобы в базу данных вставлялось значение NULL если переменная имеет NULL и значение 0 если переменная имеет значение 0.
PM MAIL   Вверх
ancheville
Дата 6.2.2011, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 5.1.2011

Репутация: нет
Всего: нет



[QUOTE=ancheville,4.2.2011,  10:27]
Цитата(aminiy @ 4.2.2011,  08:42)
А если

Код

INSERT INTO 'Calc_results' (Код, 'Твход_тр') VALUES (iff ( переменная id =0, Null, переменная id ) , abcdddd)


Выдает следующую ошибку: Неопределенная функция 'iff' в выражении.
PM MAIL   Вверх
chip_and_dayl
Дата 6.2.2011, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 603
Регистрация: 22.4.2007
Где: Украина, Киев

Репутация: нет
Всего: 9



Как вариант перед выполнением запроса проверять переменную, если она ровна пустоте, то присвоить ей "null"

Добавлено через 1 минуту и 16 секунд
Код

Выдает следующую ошибку: Неопределенная функция 'iff' в выражении.

А какой запрос был!?!

Добавлено через 5 минут и 47 секунд
А да, ф-ция не iff а iif

Это сообщение отредактировал(а) chip_and_dayl - 6.2.2011, 14:09


--------------------
Фсё будет хорошо!!!
PM MAIL Skype   Вверх
bopoha
Дата 8.2.2011, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Стоит писать так:
Код

Dim vValue as Variant
Dim stValue as String
Dim stSQL as String

vValue = Me.P_TEXT.Value

stSQL = "INSERT .... VALUES (" nz(vValue, "NULL") ")"



Подойдет только для числовых значений. Для текстовых необходимо обрамлять значение в ковычки.
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0426 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.