powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Насколько важно в БД использовать поля разных типов Date/bool/long/integer
4 сообщений из 29, страница 2 из 2
Насколько важно в БД использовать поля разных типов Date/bool/long/integer
    #37072863
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Но, по сути вопроса, все поля типа Long/Integer/Boolean, которые было накрутил, я заменил на текстовые ограниченной длины, в основном 5.
Это не вопрос, это так сказать осознанное решение.
Они могут быть вообще пустые , т.е. 0-по умолчанию никак не годится, должно быть "".
Осуждаю.
Приведенный аргумент - не аргумент. Для хранения отсутствующего значения в БД используется NULL. То есть это и есть "нет значения". NULL записывается даже в поле типа Boolean.

На клиенте ты преобразуешь число в текст, в этот момент тебе никто не мешает превратить NULL в пустую строку. У меня в библиотеке есть несколько функций, которыми я постоянно пользуюсь, вот одна из них, комментарии излишни:
Код: plaintext
1.
2.
3.
4.
5.
Public Function DeNull(Val As Variant) As String

If IsNull(Val) Or IsMissing(Val) Then DeNull = "" Else DeNull = CStr(Val)

End Function

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

ЗЫ: .... стоя в гамаке (с) анекдот
...
Рейтинг: 0 / 0
Насколько важно в БД использовать поля разных типов Date/bool/long/integer
    #37072877
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
>ЗЫ
ГЫ: но я не собираюсь тратить этот год на этот код
Ну не вижу я смысла числа статистики типа скорость соединения (14400 19200 2400) или размер картинки (8031х3850) из лонгов в стринги туда-сюда гонять, C++ модуль отдает мне текст, ListView отображает текст, я ведь не собираюсь 14400 на 8031 делить и возводить в степень 3850.

Ты лучше скажи по сути.

1.Для стирания даты в поле типа DateTime (с кот. общими усилиями согласились) NULL применять законно (другого способа стереть дату не нашел)?
Код: plaintext
adoConn.Execute ("UPDATE Table SET my_datetime=NULL,my_text='anothertext' WHERE...

2.Для быстрого считывания одной записи (ну допустим, что я знаю что WHERE задает уникальное условие и запись точно есть, ибо токо что делал ей UPDATE) Execute сгодится (сам меня к Execute подтолкнул)? То что это работает, уже проверил.
Код: plaintext
        Set RS = adoConn.Execute("SELECT * FROM Table WHERE ...)
...
Рейтинг: 0 / 0
Насколько важно в БД использовать поля разных типов Date/bool/long/integer
    #37072881
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий771.Для стирания даты в поле типа DateTime (с кот. общими усилиями согласились) NULL применять законно (другого способа стереть дату не нашел)?
Да, это единственный способ. Либо дата есть, либо нет (NULL)

Дмитрий772.Для быстрого считывания одной записи (ну допустим, что я знаю что WHERE задает уникальное условие и запись точно есть, ибо токо что делал ей UPDATE) Execute сгодится (сам меня к Execute подтолкнул)? То что это работает, уже проверил.
Код: plaintext
        Set RS = adoConn.Execute("SELECT * FROM Table WHERE ...)

Да, вполне, это альтернатива, собственно, RS.Open и делает то же самое.
...
Рейтинг: 0 / 0
Насколько важно в БД использовать поля разных типов Date/bool/long/integer
    #37072886
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77 и запись точно есть
В случаях, когда есть сомнение, проверяешь RS.EOF, если True - значит рекордсет пустой.

ЗЫ: то что рекордсет открылся пустым, не отменяет необходимости его закрыть
...
Рейтинг: 0 / 0
4 сообщений из 29, страница 2 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Насколько важно в БД использовать поля разных типов Date/bool/long/integer
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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