SQL-запросы в коде C/C++

SQL-запросы можно хранить в строковых переменных, например:

const char * query = "SELECT * FROM table1;";

Но если запрос достаточно большой, то его придется разбить на несколько строк, например:

const char * query =
    "SELECT column1, column2, column3"
    " FROM table1 INNER JOIN table2"
    " ON table1.column1 = table2.column2;";

Но такой запрос не скопируешь в какой-нибудь клиент СУБД, чтобы проверить как он исполняется. Мешают кавычки, без которых компилятор ругается.

Есть способ записи запросов, который бы удовлетворил обоим языкам и SQL и C/C++:

const char * query = 
    "SELECT column1, column2, column3 --\n\
     FROM table1 INNER JOIN table2 --\n\
     ON table1.column1 = table2.column2;";

Наклонная черта в конце строк позволяет на C/C++ переносить текст на другую строку, не используя кавычки. А два дефиса и перевод строки (\n) перед наклонной чертой сделают так, чтобы эта черта считалась комментарием на SQL.

-->
X
Обратный звонок