воскресенье, 2 февраля 2014 г.

int + varchar in SQL

Что будет если сложить число и строку в SQL?

SELECT 1 + 1 -- 2

Если складываем два числа, все очень просто, "+" означает сложение.

SELECT '1' + '1' -- 11 SELECT 'a' + 'a' -- aa

В данном случае оператор "+" применяется к строкам, это будет объединение строк (конкатенация).

SELECT 1 + '1' -- 2 SELECT '1' + 1 -- 2

В этом примере разные типы данных (int и varchar). Тип varchar имеет более низкий приоритет типов данных, поэтому он будет преобразован в int.

SELECT 1 + 'a' -- error SELECT 'a' + 1 -- error

И этом случае varchar преобразовывается в int, однако превратить строку 'a' в число нельзя, поэтому получаем ошибку: Conversion failed when converting the varchar value 'a' to data type int.

суббота, 28 августа 2010 г.

getline

Прочитать целую строку (вместе с пробелами) из потока очень просто.

#include <iostream>
#include <string>
...
std::wstring w;
std::getline(std::wcin, w);

пятница, 27 августа 2010 г.

UTF BOM Signatures

Encoding BOM Signature
UTF-8 EF BB BF
UTF-16 LE FF FE
UTF-16 BE FE FF
LE, little-endian
порядок от младшего к старшему, Intel byte order
BE, big-endian
порядок от старшего к младшему, Motorola byte order, network byte order

CreateFile Function, dwCreationDisposition

Функция WinAPI CreateFile создает или открывает файл. Ее поведение зависит от параметра dwCreationDisposition и от того, создан ли был файл ранее, существует ли файл во время вызова. В некоторых случаях CreateFile завершится с ошибкой.

В таблице показано, когда CreateFile сможет открыть файл, и будет ли при открытии существующего файла удалено его содержимое.

dwCreationDisposition Файл уже существует Исходный файл
будет заменен
нет да
CREATE_NEW ok ошибка -
CREATE_ALWAYS ok ok да
OPEN_ALWAYS ok ok нет
OPEN_EXISTING ошибка ok нет
TRUNCATE_EXISTING ошибка ok да

среда, 25 ноября 2009 г.

HTMLayout

Где найти информацию о HTMLayout?

Changelog, release notes. Какая версия самая свежая?

Download. Где скачать?

HTMLayoutSDK.zip - SDK, содержит все необходимое для разработки приложений под WTL/MFC/Win32.
HTMLayoutDemo.zip - примеры приложений (бинарники) и примеры HTML.
HTMLayoutDLL.zip - cодержит 32-битную htmlayout.dll.
HTMLayoutMobileSDK.zip - SDK для мобильных устройств WM 2003/2005.

Все, что есть в HTMLayoutDLL.zip и в HTMLayoutDemo.zip есть также и в HTMLayoutSDK.zip.

Содержимое SDK. Что находится в HTMLayoutSDK.zip?
Бинарники (htmlayout.dll, примеры)
\bin\
\bin64\

Заголовочные файлы
\include\

Библиотеки импорта
\lib\
\lib64\

Примеры HTML
\html_samples\

Исходники примеров
\AxHTMLayout\
\mfc\
\mfclite\
\skin\
\win32\
\win32.directx.htmlite\
\win64\
\wtl\

Справка по API. Старая версия! Лучше смотреть здесь
\htmlayout.chm

История изменений, лицензия
\HTMLayoutSDK.license.htm
\logfile.htm
\logfile320.htm
\read.me

четверг, 17 сентября 2009 г.

Скотт Мейерс. Эффективное использование STL

Издательство "Питер", 2002 г. ISBN 5-94723-382-7.

Оригинальное название - Scott Meyers. Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library.

Книга замечательная, содержит хорошие советы и примеры. Мейерс - молодец!

пятница, 11 сентября 2009 г.

Бьерн Страуструп. Язык программирования C++. Специальное издание

Издательство "Бином-Пресс", 2008 г. ISBN 978-5-7989-0226-2

Оригинальное название: Bjarne Stroustrup. The C++ Programming Language. Special Edition.

Книга большая, 1104 страницы. Содержит подробное описание C++ от самого создателя языка. Отдельная часть посвящена проектированию с использованием C++. В книге также рассматривается стандартная библиотека.

Некоторые ошибки и опечатки в русском издании:

стр. 114, правильный пример (3rd_printing12.html, pg 76):

#include <limits>
#include <iostream>

int main()
{
   std::cout << "largest float == " << std::numeric_limits<float>::max()
             << ", char is signed == " << std::numeric_limits<char>::is_signed << '\n';
}

стр. 159: пропущена * в строке

while (*input){

стр. 162: вместо "Унарные операторы" должно быть "Префиксные операторы" (3rd_printing20.html, pg 121).

стр. 319:

complex z1 = {3};

стр. 328, исправленный абзац (3rd_printing15.html, pg 280):
"Из этого следует, что функция-друг класса должна быть либо явно объявлена в охватывающей области видимости, либо иметь аргументы этого класса или производного от него (13.6). В противном случае функцию друга вызвать нельзя. Например:"

стр. 362: В объявлении Circle два раза встречается Point center. Первый Point center надо удалить.

стр. 367, в комментарии вместо "функции, замедляющие виртуальные" должно быть "функции, замещающие виртуальные".