Иногда, чтобы заполнить пустую базу данных от внешнего источника данных или отладить проблему в базе данных я должен отключить ВСЕ триггеры и ограничения. Чтобы сделать так, я использую следующий код:
Для отключения всех ограничений и триггеров:
sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"
sp_msforeachtable "ALTER TABLE ? DISABLE TRIGGER all"
Для включения всех ограничений и триггеров:
exec sp_msforeachtable @command1="print '?'", @command2="ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all"
sp_msforeachtable @command1="print '?'", @command2="ALTER TABLE ? ENABLE TRIGGER all"
я нашел, что решение некоторое время назад на SQLServerCentral, но должен был изменить разрешать ограничительную часть, поскольку исходный не работал полностью
Поскольку обводка растягивается на одинаковую величину в обе стороны, линия шириной в один пиксель не должна размещаться по целочисленной координате, а со смещением 0,5 пикселя.
Вычислите правильные координаты для обведенных линий следующим образом:
CGPoint pos = CGPointMake(floorf(pos.x) + 0.5f, floorf(pos.y) + 0.5f);
BTW: Не приводите свои значения к int и обратно к float, чтобы избавиться от десятичной части. В языке C для этого есть функция floor
.
в ваших фреймах просмотра у вас, вероятно, есть значения с плавающей запятой, которые не являются целыми числами. Хотя кадры достаточно точны, чтобы отображать доли пикселя (с плавающей точкой), вы получите размытость, если не приведете к int
CGRect frame = CGRectMake((int)self.frame.bounds..., (int)...., (int)...., (int)....);