Хранимые процедуры [еще 111] удобный в сопровождении потому что:
повторение Кода хуже вещь, которую можно сделать, когда Вы пытаетесь создать удобное в сопровождении приложение!
, Что происходит, когда Вы находите логическую ошибку, которая должна быть исправлена в нескольких местах? Вы более склонны забыть изменять то последнее пятно, где Вы копируете & вставляемый Ваш код.
, По-моему, производительность & усиления безопасности являются добавленным плюс. можно все еще записать небезопасные/неэффективные хранимые процедуры SQL.
Легче к порту к другому DB - никакой procs к порту
Это не очень твердо к сценарию все Ваши хранимые процедуры для создания в другом DB. На самом деле - это легче , чем экспорт Ваших таблиц, потому что нет никаких основных / внешних ключей для волнения о.
Обычно с OpenGL вы читаете из фреймбуфера с помощью функции glReadPixels ()
. Это поместит содержимое фреймбуфера в выделенный вами буфер. Затем вам понадобится функция, которая преобразует это в JPEG.
Однако, поскольку вы используете QGLWidget
, вы можете использовать его метод grabFrameBuffer ()
для получения содержимого буфера кадра как объект QImage
. Это, наверное, лучший способ. Вы можете получить содержимое фреймбуфера, а затем использовать QImage :: save ()
для сохранения в файл.
Если вы перейдете к QOpenGLWidget
Qt 5, вы обнаружите, что он имеет похожий
метод grabFrameBuffer ()
.
QImage img(mywidget.size());
QPainter painter(&img);
mywidget.render(&painter);
img.save("/some/file.jpg");