|
Конкатенация в макросе
|
|||
---|---|---|---|
#18+
Хочу странного: объявить константу через параметр макроса, но без префикса или суффикса. Есть какой-нибудь трюк, позволяющий конкатенацию с пробелом или ещё чем-нибудь незначимым? Чтобы следующее работало: Код: sql 1. 2. 3. 4. 5. 6. 7.
Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2020, 19:40 |
|
Конкатенация в макросе
|
|||
---|---|---|---|
#18+
Попробуй __LINE__ ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2020, 19:54 |
|
Конкатенация в макросе
|
|||
---|---|---|---|
#18+
maytonПопробуй __LINE__ Как-то не получается его на хвост нанизать. Оно тупо разворачивается в "const int __LINE__ABC = 2;" Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2020, 20:25 |
|
Конкатенация в макросе
|
|||
---|---|---|---|
#18+
Там номер строки должен быть. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2020, 21:39 |
|
Конкатенация в макросе
|
|||
---|---|---|---|
#18+
Похоже, я не смог донести в первом посте идею. У меня есть макрос-константа. Типа Код: sql 1.
Мне хочется из него сделать Код: sql 1.
без копипаста и search-and-replace, кодом класса Код: sql 1.
Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2020, 22:43 |
|
Конкатенация в макросе
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Мне хочется из него сделать по сути ты хочешь это: Код: plaintext 1.
если Dimitry Sibiryakov без копипаста и search-and-replace то хз как ещё то... имхо, search-and-replace - best choice. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 00:24 |
|
Конкатенация в макросе
|
|||
---|---|---|---|
#18+
Когда афтор хочет "странного" - завсегдатаи нашего форума сурово сдвигают брови... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 00:43 |
|
Конкатенация в макросе
|
|||
---|---|---|---|
#18+
полудухпо сути ты хочешь это: Да. И ещё "#undef SQL_INTEGER" после этого. Ибо макросы, в отличии от констант, не оборачиваются в неймспейсы и если две сторонние библиотеки по их именам пересекутся - становится мучительно больно их сопрягать. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 01:22 |
|
Конкатенация в макросе
|
|||
---|---|---|---|
#18+
Отключить подстановку макроса можно только для функциональных макросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 12:51 |
|
Конкатенация в макросе
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Похоже, я не смог донести в первом посте идею. У меня есть макрос-константа. Типа Код: sql 1.
Мне хочется из него сделать Код: sql 1.
без копипаста и search-and-replace, кодом класса Код: sql 1.
Почему search-and-replace сложнее, чем search-and-insert? найти Код: plaintext
Код: plaintext
Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 13:25 |
|
Конкатенация в макросе
|
|||
---|---|---|---|
#18+
Заголовок сторонний. Конкретно - sql.h. Вставлять строчки я могу в свою обёртку, но трогать оригинал - нельзя, софтине ещё у других людей собираться надо. Возможно, с другими версиями компилятора и названного заголовка. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 13:31 |
|
Конкатенация в макросе
|
|||
---|---|---|---|
#18+
что-то мешает добавить свой consts.h, где прописать все: Код: plaintext 1. 2.
...нельзя делать undef того, что будет либа юзать? т.е. у нас тут классический трабл с легаси кодом и рефакторингом... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 14:42 |
|
Конкатенация в макросе
|
|||
---|---|---|---|
#18+
полудухчто-то мешает добавить свой consts.h Ничего, именно этим я сейчас и занимаюсь. Правда, писать приходится так: Код: sql 1. 2.
И вот эта двойка меня раздражает. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 14:45 |
|
Конкатенация в макросе
|
|||
---|---|---|---|
#18+
Меня эта двойка тоже раздражает. Чем тебя не устраивают стандартные константы? Это такой специальный метод обфускации? Чтоб собиралось только тут, только с этими драйверами и нигде больше? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 17:27 |
|
Конкатенация в макросе
|
|||
---|---|---|---|
#18+
White OwlЧем тебя не устраивают стандартные константы? Что такое "стандартные константы"? White OwlЭто такой специальный метод обфускации? Чтоб собиралось только тут, только с этими драйверами и нигде больше? Это такой метод разрешить конфликт имён макросов. Чтобы собиралось хоть как-то и после этого работало. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 18:43 |
|
Конкатенация в макросе
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov White OwlЧем тебя не устраивают стандартные константы? Что такое "стандартные константы"?Те которые определены в sql.h компанией Microsoft еще в те времена когда она только изобрела ODBC. Те которые используются всеми ODBC драйверами, потому что они все используют один и тот-же sql.h, Dimitry Sibiryakov Это такой метод разрешить конфликт имён макросов. Чтобы собиралось хоть как-то и после этого работало. Не, я конечно могу предположить что встретился на земле идиот который написал свой собственный ODBC драйвер на основе собственного набора SQL* констант. Но неужели тебе обязательно использовать этот кривой драйвер??? Что у тебя за уникальная RDBMS что для нее есть всего один единственный драйвер, да и тот со сбитой картой типов??? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 19:06 |
|
Конкатенация в макросе
|
|||
---|---|---|---|
#18+
Я-бе переформатировал вопрос. Не борьба с легаси а формирование принципов будущей разработки чтоб таких конфликтов никогда не было. А легаси оно так и будет. Ничего с этим не поделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 19:14 |
|
Конкатенация в макросе
|
|||
---|---|---|---|
#18+
White OwlЧто у тебя за уникальная RDBMS что для нее есть всего один единственный драйвер, да и тот со сбитой картой типов??? "Угадай с трёх раз..." Это, конечно же, Firebird. У которой есть ibase.h, точно так же определяющий константы с примерно такими же именами со времен, когда ODBC не существовало в природе. И написание утилиты, которая перекачивает данные из одного в другой, становится забавной борьбой двух legacy. Причём оба интерфейса ещё живы и развиваются, так что тупо взять заголовки, скопировать себе и поправить не слишком-то хороший вариант (я пробовал). Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 19:26 |
|
Конкатенация в макросе
|
|||
---|---|---|---|
#18+
В топиках сравнений СУБД периодически появляется один господин который рекламирует файрбёрд https://www.sql.ru/forum/1320886/firebird-shustraya-belaya-krysa https://www.sql.ru/forum/1307360/firebird-stremitelnyy-groznyy-kaban Подозрвеваю что господин меняет никнеймы. Интересно. Какова вообще перспектива ODBC? Я считал что его похоронили еще лет 10 назад. Но как я вижу он жив. А если его хоронят - какова альтернатива? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 19:32 |
|
Конкатенация в макросе
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Это, конечно же, Firebird. У которой есть ibase.h, точно так же определяющий константы с примерно такими же именами со времен, когда ODBC не существовало в природе. И написание утилиты, которая перекачивает данные из одного в другой, становится забавной борьбой двух legacy. Причём оба интерфейса ещё живы и развиваются, так что тупо взять заголовки, скопировать себе и поправить не слишком-то хороший вариант (я пробовал). Нууу.... FireBird это конечно птица гордая... Но все равно не вижу проблемы. Если ты делаешь ETL, то во первых, можно все сделать намного проще через две отдельные утилиты - одна выгружает, другая загружает. Между ними может быть что угодно - чаще всего это CSV, реже какой-нибудь собственный формат файлов, еще реже полноценный IPC... Не хочешь две утилиты? Тогда разбей свою утилиту на три логических части - одна будет "работать" с бизнес элементами (в смысле описывать и хранить данные не в виде таблиц, а в виде классов) а две другие будут делать чисто сериализацию этих бизнес элементов в свои RDBMS. Вот эти две части просто кидаешь в подкаталоги (чтобы не путаться) и работаешь с ними по отдельности. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 19:41 |
|
Конкатенация в макросе
|
|||
---|---|---|---|
#18+
mayton Какова вообще перспектива ODBC? а куда он из колеи денется? (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 19:57 |
|
Конкатенация в макросе
|
|||
---|---|---|---|
#18+
mayton Интересно. Какова вообще перспектива ODBC? Я считал что его похоронили еще лет 10 назад. Но как я вижу он жив. Просто вспомни что для MS SQL Server'а это "native" интерфейс и всяческие "более продвинутые" интерфейсы являются на самом деле обертками над ним. Так что пока MS живет как фирма - ODBC будет жить. mayton А если его хоронят - какова альтернатива? Но сегодня, все СУБД имеющие клоны сервера для Виндов имеют в стандартной поставке и ODBC драйвер. Да и для Линукса имеются клоны драйверов, хотя там чаще можно встретить другие интерфейсы. Но... к ним все равно делают ODBC обертки. Простота интерфейса в сочетании с универсальностью (как ОС так и СУБД) - эту комбинацию побить чрезвычайно сложно. Кстати, вот еще одни вариант для TC: https://firebirdsql.org/en/odbc-driver/ и выкинуть к чертям ibase.h. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 19:57 |
|
Конкатенация в макросе
|
|||
---|---|---|---|
#18+
White Owl mayton Интересно. Какова вообще перспектива ODBC? Я считал что его похоронили еще лет 10 назад. Но как я вижу он жив. Просто вспомни что для MS SQL Server'а это "native" интерфейс и всяческие "более продвинутые" интерфейсы являются на самом деле обертками над ним. Так что пока MS живет как фирма - ODBC будет жить. Хм... я считал что его заменяют на ADO.Net везде где только можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 20:01 |
|
Конкатенация в макросе
|
|||
---|---|---|---|
#18+
mayton Хм... я считал что его заменяют на ADO.Net везде где только можно. Не забывай что ODBC это С интерфейс и только С и С++ могут с ним работать напрямую, все остальные языки требуют обертки. Вот для .Net такой оберткой и является ADO.Net. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 20:24 |
|
Конкатенация в макросе
|
|||
---|---|---|---|
#18+
А в стеке технологий если сравнить ODBC/Ado что у них общее? Или есть ли какая-то поясняющая картинка как идет современная интеграция приложений Microsoft с MSSQL? ИЛи там какие есть best-practices. Рекомендации... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 20:28 |
|
|
start [/forum/topic.php?fid=57&msg=39919646&tid=2017485]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 278ms |
total: | 391ms |
0 / 0 |