Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Колонка date
|
|||
|---|---|---|---|
|
#18+
В таблице есть колонка с типом даты date. Объявлено так: was_born date, Пользователь может вносить в эту колонку дату рождения, а может не вносить, также может удалять даты рождения. Допустим в записи есть дата рождения 17.01.2000 Теперь пользователь хочет убрать это значение из таблицы. Я пишу запрос UPDATE и устанавливаю это значение в NULL. В результате я не получаю пустое значение как мне надо, а получаю дату 30.12.1899 Подскажите как вместо 30.12.1899 получать пустуое значение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 12:29 |
|
||
|
Колонка date
|
|||
|---|---|---|---|
|
#18+
Ограничения на поле DATE никакого нет? Может там из триггера на автомате проставляется некая дата по умолчанию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 12:39 |
|
||
|
Колонка date
|
|||
|---|---|---|---|
|
#18+
Эту таблицу в PostgreSQL я сама сделала. Ограничений нет и тригеров тоже. Вот определение: CREATE TABLE voditeli ( id_voditel serial NOT NULL, fam character varying(35) NOT NULL, name character varying(35) NOT NULL, otchestvo character varying(35), was_born date, telefon_1 character varying(15), telefon_2 character varying(15), address character varying(128), primichanie character varying(128), foto_vod bytea, CONSTRAINT pk_id_voditel PRIMARY KEY (id_voditel) ) WITHOUT OIDS; ALTER TABLE voditeli OWNER TO postgres; Откуда берется 30.12.1899 не понятно. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 12:46 |
|
||
|
Колонка date
|
|||
|---|---|---|---|
|
#18+
Покажите, как создана таблица (скрипт). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 12:46 |
|
||
|
Колонка date
|
|||
|---|---|---|---|
|
#18+
pamirПокажите, как создана таблица (скрипт).Да, и ещё - чем вы смотрите дату? Очень может быть, что это клиент (который отображает дату или получает её) воспринимает NULL как самую малую для него дату. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 12:47 |
|
||
|
Колонка date
|
|||
|---|---|---|---|
|
#18+
pamir[quot pamir]Очень может быть, что это клиент (который отображает дату или получает её) воспринимает NULL как самую малую для него дату.Как вариант, нужно и это проверить. В частности, убедиться, что в колонке забито (или не забито) такое значение даты можно при помощи запроса. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 12:57 |
|
||
|
Колонка date
|
|||
|---|---|---|---|
|
#18+
Добрый Э - Эх pamir[quot pamir]Очень может быть, что это клиент (который отображает дату или получает её) воспринимает NULL как самую малую для него дату.Как вариант, нужно и это проверить. В частности, убедиться, что в колонке забито (или не забито) такое значение даты можно при помощи запроса. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 12:59 |
|
||
|
Колонка date
|
|||
|---|---|---|---|
|
#18+
null_date_cnt - тут имеется ввиду количество строк, которое апдейтилось в значение NULL, но которое в итоге стало равным указанной дате. Если этот счетчик покажет 0, то стало быть в таблице нет дат 30.12.1899. Если же счетчики total_cnt и not_null_date_cnt будут равны, стало быть в таблице нет строк с NULL-значением в поле was_burn. Если же эти счетчики будут различаться, стало быть пустые значения есть. Все это позволит определить - действительно ли в таблице хранится косячная дата, или же это происки клиентского приложения, неспособного корректно отобразить пустое значение в поле типа date ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 13:03 |
|
||
|
Колонка date
|
|||
|---|---|---|---|
|
#18+
Спасибо всем. Вообщем разобралась. Надо переделать было запрос в программе. Вот так у меня было сначала и это заносило 30.12.1899, поэтому не правильно: //код С++ Builder 2007 TDateTime data; //хочу обулить дату data = NULL; SQLvBazy = "UPDATE voditeli SET fam = '"+ Edit1->Text+"'" + ", " + "name = '" + Edit2->Text +"'" + ", " + "otchestvo = '" + Edit3->Text + "'" + ", " + "was_born = '" + data.DateString() +"'" + ", " + и т.д. Я предпологала что это занесет пустую строку "" а оно заносило 30.12.1899 Вот так заработало: AnsiString null = "NULL"; //и надо было убрать одинарные кавычки вокруг null SQLvBazy = "UPDATE voditeli SET fam = '"+ Edit1->Text+"'" + ", " + "name = '" + Edit2->Text +"'" + ", " + "otchestvo = '" + Edit3->Text + "'" + ", " + "was_born = " + null + ", " + и т.д. Сейчас вроде работает нормально... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 13:19 |
|
||
|
Колонка date
|
|||
|---|---|---|---|
|
#18+
В качестве послесловия - почитайте что-нибудь про параметризированные запросы. Наверняка в C++ Builder компоненты работы с базой их поддерживают. Если уж в Дельфях такое было с TQuery ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 14:09 |
|
||
|
Колонка date
|
|||
|---|---|---|---|
|
#18+
это не тама PostgreSQL. Обратитесь в ветку С++ Builder lena_ki Сейчас вроде работает нормально... Поменяйте локализацию в WINDOWS и убедитесь в обратном. ))) так как сделали Вы - не входит ни в какие рамки как Оффтоп простой пример на Delphi 1. VCL ZEOS в ZQuery1 Код: plaintext 1. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 17:58 |
|
||
|
Колонка date
|
|||
|---|---|---|---|
|
#18+
Спасибо. Переделаю на запрос с параметрами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2008, 10:25 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=35444453&tid=2004197]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
37ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 310ms |

| 0 / 0 |
