|
|
|
XE3 IBUpdateSQL не пишет null
|
|||
|---|---|---|---|
|
#18+
Привет! Использую IBUpdateSQLW - так вот, при вводе "пустой" даты отображается старая. Ранее - D7,Turbo,2007 не наблюдалось. Тупо перебирал все возможные причины и нашел здесь: procedure TIBUpdateSQL.SetParams(UpdateKind: TUpdateKind); .............................. if Old then Param.AssignFieldValue(Field, Field.OldValue) else begin Value := Field.NewValue; if VarIsEmpty(Value) then Value := Field.OldValue; // вот она, собака! Param.AssignFieldValue(Field, Value); end; .................... Изменил на if VarIsEmpty(Value) then Value :=null;// Field.OldValue; Работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2013, 09:06:46 |
|
||
|
XE3 IBUpdateSQL не пишет null
|
|||
|---|---|---|---|
|
#18+
ooo_kontaktпри вводе "пустой" даты отображается старая Интересно, а как можно ввести "пустую" дату? И да, varEmpty <> varNull. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2013, 10:38:40 |
|
||
|
XE3 IBUpdateSQL не пишет null
|
|||
|---|---|---|---|
|
#18+
странный код. Вообще-то NULL определяется как Field.IsNull ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2013, 11:31:28 |
|
||
|
XE3 IBUpdateSQL не пишет null
|
|||
|---|---|---|---|
|
#18+
Симонов Денис, А они небось все через Variant переваривают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2013, 11:56:46 |
|
||
|
XE3 IBUpdateSQL не пишет null
|
|||
|---|---|---|---|
|
#18+
Симонов Денисстранный код. Вообще-то NULL определяется как Field.IsNull В чем странность в коде SetParams? Ебтырный малахай, весь код IBX таков. Но меня, Денис, удивило последнее предположение. property IsNull: Boolean read GetIsNull; И как ты здесь что-то определишь, если пропертя абсолютно читаемая, но не пишущая? В сабже четко прописано, что обычное dm.MyTableMyDate.asString:='' при update поля с уже введенным ранее значением >0 не меняет значение поля в null. В старых версиях Delphi это проходило, в XE3 - нет. Похоже на то, что VarIsNull уже выдает что-то иное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2013, 16:40:59 |
|
||
|
XE3 IBUpdateSQL не пишет null
|
|||
|---|---|---|---|
|
#18+
ooo_kontakt, Ну это не я так определяю. Это вообще код Borland. Для установки в поле значения NULL используется метод Field.Clear Почему так надо у них спрашивать. Хотя наверное ты прав для NewValue и OldValue это может не работать. IBUpdateSQLW - вообще не родной компонент. Его написали для того, чтобы компенсировать отсутсвие возможности работать с 2мя транзакциями в TIBDataSet. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2013, 17:27:34 |
|
||
|
XE3 IBUpdateSQL не пишет null
|
|||
|---|---|---|---|
|
#18+
ooo_kontakt, нормальный код, нужно только понимать как им пользоваться. Если поле не меняли (т.е. вообще ничего в него не вводили, а значит NewValue is Empty), то берётся старое значение. Оно потом может быть использовано в where, для проверки корректности update\delete. Научись вводить "пустую" дату как Null, а не оставлять в ней Empty, и будет тебе счастье без хакания чужого кода ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2013, 17:39:48 |
|
||
|
XE3 IBUpdateSQL не пишет null
|
|||
|---|---|---|---|
|
#18+
ooo_kontaktВ сабже четко прописано, что обычное dm.MyTableMyDate.asString:='' при update поля с уже введенным ранее значением >0 не меняет значение поля в null.А с какого перепуга пустая строка должна стать нуллом ? Ораклоиды пришли ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2013, 17:45:05 |
|
||
|
XE3 IBUpdateSQL не пишет null
|
|||
|---|---|---|---|
|
#18+
Симонов Денис> Для установки в поле значения NULL используется Симонов Денис> метод Field.Clear Почему так надо у них спрашивать. А что не так, что не нравится? По-моему вполне логично. Правда, лично я как дополнение предпочёл бы ещё и AsVariant := Null, но это уже шашечки. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2013, 19:07:32 |
|
||
|
XE3 IBUpdateSQL не пишет null
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам, сейчас посмотрел в полный исходный код - вроде все нормально. Просто по обрывку кода сразу не ясно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2013, 20:04:16 |
|
||
|
XE3 IBUpdateSQL не пишет null
|
|||
|---|---|---|---|
|
#18+
Симонов Денисooo_kontakt, IBUpdateSQLW - вообще не родной компонент. Его написали для того, чтобы компенсировать отсутсвие возможности работать с 2мя транзакциями в TIBDataSet. Знаю. Это моя работа - мой ник раньше был Fanis. В родном IBUpdateSQL происходит то же самое, и IBUpdateSQLW - несколько измененный IBUpdateSQL. Отписался, повторяю, в связи с XE3 - компиляция под 2007 - нет проблем. hvlad А с какого перепуга пустая строка должна стать нуллом ? Ораклоиды пришли ? А вот здесь поподробнее, пожалуйста. Я совершенно не разбираюсь в SQL. Сохраняем пустую строку (пример ниже) в базу и ее значение <> NULL? И что там? Я часто при импорте из dbf использовал importDate:TDateTime; if importDate<StartDate then MySql.Params[0].asstring:='' else MySql.Params[0].asDateTime:=importDate; И это работает - получаю null или то, что устраивает как дату. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2013, 11:12:56 |
|
||
|
XE3 IBUpdateSQL не пишет null
|
|||
|---|---|---|---|
|
#18+
ooo_kontaktСохраняем пустую строку (пример ниже) в базу и ее значение <> NULL? И что там?Да, ее значение не null, ее значение '' (пустая строка). is null для нее будет false сравнение с пустой строкой даст true ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2013, 11:35:06 |
|
||
|
XE3 IBUpdateSQL не пишет null
|
|||
|---|---|---|---|
|
#18+
Ivan_Pisarevskyooo_kontaktСохраняем пустую строку (пример ниже) в базу и ее значение <> NULL? И что там?Да, ее значение не null, ее значение '' (пустая строка). is null для нее будет false сравнение с пустой строкой даст true Речь шла о TDateTime - "Пустая дата". И речь идет не о SQL, а компоненте доступа. Я сообщил о том, что раньше MyTableMyDate.asString:='' было = null, а сегодня (ХЕ3) НЕТ!!! Закрываем тему - мне не нравится, как кто-то пишет: "и будет тебе счастье без хакания чужого кода". Так просто - почти как сплюнул походя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2013, 12:50:49 |
|
||
|
XE3 IBUpdateSQL не пишет null
|
|||
|---|---|---|---|
|
#18+
ooo_kontaktЗакрываем тему - мне не нравится, как кто-то пишет: "и будет тебе счастье без хакания чужого кода".А к какому именно слову\обороту у тебя претензии ? "будет тебе счастье" - местное (как минимум) устойчивое выражение, сделай поиск и проверь. Что в нём оскорбительного ? "хакания чужого кода" - тебе есть что тут возразить по существу ? PS А мне не нравится ooo_kontaktЕбтырный малахай - и шо ? Пойду плакать в подушку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2013, 15:55:09 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38401789&tid=1564313]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
202ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 495ms |

| 0 / 0 |
