diaminru
Junior Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору на СО2006 сб4 обнаружил следующее: если счет создать, не выбирать клиента, счет сохранить то в базе в таблице INVOICES в столбце CLNUM(ссылка на значение в таблице CLIENTS) знеачение будет 0 (ноль), если счет с выбранным клиентом скопировать, удалить кдиента то в описаной выше ячейке будет значение NULL. на остальных сборках так же? если кто то будет писать запросы к базе учитывайте это(условие INVOICES.CLNUM = CLIENTS.CLNUM не будет работать корректно при описанных выше условиях(то есть пользюки копируют счета и удаляют клиента) ) например выборка счетов за заданный период будет выглядеть так: WHERE ((( (invoices.clnum is null)and(clients.clnum = 0) ) or (invoices.clnum = clients.clnum) ) and (INVOICES.INVDATE >= '"+Строка(нДата)+"') and (INVOICES.INVDATE <= '"+Строка(кДата)+"') ) а не так: WHERE (( invoices.clnum = clients.clnum ) and (INVOICES.INVDATE >= '"+Строка(нДата)+"') and (INVOICES.INVDATE <= '"+Строка(кДата)+"') ) если тут на форуме есть разработчики, то ответьте пожалуйста ЗАЧЕМ было сделано это? если клиент не выбран либо удален, то единственное что это может означать - что данный док не привязан к какому либо клиенту, поэтому имхо ячейка должна иметь одно и тоже значение в обоих случаях... или Вам было лень сделать проверку из одного оператора при сохранении счета? + во всех руководствах по Базам Данных говорится что использовать Null'ы нужно минимально, ибо чем их больше тем лучше.... | Всего записей: 91 | Зарегистр. 22-02-2007 | Отправлено: 15:51 07-11-2007 | Исправлено: diaminru, 15:52 07-11-2007 |
|