Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.07.2011, 12:45   #31
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Странная какая-то тема...
Я ничего лично не понял из проблем автора, у меня лично с Делфи полное понимание.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 31.07.2011, 10:27   #32
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

Не понял проблему автора... у меня всё с NULL работает...
Если в базу надо NULL дату запихать дык и пиши в insert date=null
считать из базы тоже легко fields[0].asstring если оно null то будет равно ''
если нет, то будет дата.
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 31.07.2011, 12:48   #33
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

BARNEY, так не INSERT DATE = Nul, а INSERT INTO Table(FieldDate) Values(Null)
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Старый 31.07.2011, 12:58   #34
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

chertovich
Я то знаю это...я не понял чего автор хочет Кроме негатива ..притом на себя же как я понял... не чего не увидел.
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 31.07.2011, 14:29   #35
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Замечу, что NULL (как вариант) - это не совсем то же самое, что NULL-значение в БД, хотя NULL-вариант и используется для отражения NULL-значения в БД. И уж тем более NULL в обоих смыслах никак не связано с nil.

Если работа идёт прямым запросом, то NULL вставляется прямым текстом:

Код:
Query.Close;
Query.SQL.Text  := 'INSERT INTO Table(Field1, Field2) VALUES (NULL, 42)';
Query.ExecSQL;
Если же работа идёт через компоненты доступа к БД, то использовать надо метод Clear соответствующего поля, либо представлять NULL-вариант в Value поля.

И уж совсем странно выглядят попытки писать код на нативном компилируемом языке и возмущаться, что его синтаксис не соответствует скриптовому SQL.

Цитата:
Только я никогда не смогу понять логику разработчиков Delphi, которые решили упразднить для переменных классов Date,Integer,итд значение <ПУСТО> - имхо это свинство и ихняя халява - им так проще - либо чётко проверять integer на число, либо юзай variant мы его вообще проверять не будем никак... глупое решение с их стороны конечно, данная тема тому пример.
Цитата:
Увы, проблема получила продолжение... замечательный тип Variant тоже оказался недоделанным, тк не позволяется ему устанавливать значение по-умолчанию: [DCC Error] uForm.pas(92): E2268 Parameters of this type cannot have default values.
Почему?! Какой в этом смысл?! и какая нахер тогда это вообще универсальная переменная, ежели нельзя по-умолчанию присвоить значение... ппц идиотизм.
5 баллов, чего уж там.

Прежде чем бочку катить на языки, неплохо бы голову иногда включать.

Цитата:
Сообщение от delphicoding Посмотреть сообщение
Есть ФормаА с таблицей с данными. Нажали кнопочку ОК - вызывается специальная процедура обработки из ФормыБ в которую передаётся значение "1,2,3,4,ДАТАСЕГОДНЯ", процедура в программе вызывает хранимую процедуру в БД и передаёт туда значения, значения записываются в БД. Всё ок.
Нажали кнопку ОТМЕНА в той же ФормеА - вызывается ТА ЖЕ процедура обработки из ФормыБ в которую надо передать значение "1,2,3,4,null", процедура в программе вызывает процедуру в БД и передаёт туда значения, чтобы в БД поле стало NULL!
Ошибка возникает при попытке вызвать из ФормыА в ФормеБ процедуру с атрибутами "1,2,3,4,null"...
Чудак ты, приятель. Ежели ты производишь обработку данных для БД - ну так и передавай в процедуру данные для БД - то бишь поля (field), наборы данных (dataset) или хотя бы, на худой конец, Variant-значения, а не базовые типы (TDateTime, Integer), которые к БД отношения, в общем-то, не имеют. А так, да: дом - это не автомобиль, а окно - не дверь. Можете возмущаться этим фактом дальше.

Ещё вполне нормальным вариантом опускания значения являются указатели, но, судя по твоим высказываниям, тебе ещё рано.

Цитата:
Дополнительным бредом является жёсткое ограничение на указание типов атрибутов процедуры - если указан тип со значением по-умолчанию, все следующие за ним - также обязаны быть со значением по-умочланию - бредятина! это может и удобно разработчикам Delphi, но это совершенно неудобна разработчикам В Delphi! Приходится подгонять порядок атрибутов вместо удобного и отвечающего чему-то в программе, по значениям по-умочланию. Тупизна какая.
Код:
procedure Funcenstein(A: Integer; B: Integer = 5; C: Integer; D: Integer = 5);

...

Funcenstein(5, 5, 5);
Вопрос: и что я вызвал? A, B, C или A, C, D?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.

Последний раз редактировалось GunSmoker; 31.07.2011 в 14:40.
GunSmoker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перевести integer в Date demiancz Общие вопросы Delphi 11 17.02.2011 23:08
КАк сделать JOIN в Access с объединением по NULL Izhic Помощь студентам 1 09.02.2011 11:18
FireBird. Как конвертировать Integer в Date и обратно? BeJIuKuu_Hexo4yxa SQL, базы данных 5 25.10.2010 10:10
как сравнить c null? MigelCNB Общие вопросы Delphi 4 22.09.2010 15:06
Как сделать подобие NOT NULL в DataGridView? C# Sparkman Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 2 18.08.2010 11:07