LINUX.ORG.RU

Почему я хотел динамическое создание переменных и о другом


0

0

Ранее (до праздников) задавал вам вопрос
(http://www.linux.org.ru/profile/gtyrin/jump-message.jsp?msgid=900355&last...) по поводу создания переменных определенного типа налету.

Благодарю всех откликнувшихся, а особенно <kosmonavt>.

Я хотел использовать данную реализацию для динамического создания таблиц по имеющимся мета-данным БД. Но, к сожалению, для создания таблиц необходимы, помимо описания полей таблицы, и переменная, закрепленная за полем, видимо, для дальнейшей выборок в нее значений определенной записи (fetch по записям SQL-запросов и проч.)

Вот пример в wxWidgets:
// сначала в конструкторе передается ссылка на wxDb, указывается имя таблицы, число колонок и проч.
// далее, для каждой из колонок задается доп.информация
// 0 - индекс поля
// здесь PartNumber - переменная данных, соответствующая данному типу // колонки
SetColDefs(0, "PART_NUMBER", DB_DATA_TYPE_VARCHAR, PartNumber,
SQL_C_CHAR, PART_NUMBER_LEN, true, false,true,false);
// ...
ret = CreateTable();

Так вот переменные подобно PartNumber и размер этих переменных (буфер ввода) - PART_NUMBER_LEN == sizeof(PartNumber) я и хотел получать динамически.

Подскажите, пожалуйста, как это реализовать? Я пытался подствалять для функции SetColDefs элемент вектора, в который писал произвольную по типу переменную, но компилятору *void не нравится.

Что касается вопроса заданного позже о языках и эффективности (http://www.linux.org.ru/profile/gtyrin/jump-message.jsp?msgid=900692&last...), ставилась цель найти язык максимально ускоряющий скорость разработки приложений. Писал и пишу на разных языках с разным успехом:
- Visual FoxPro - по работе на фирме (последние денечки ;-)
- Java - очень недолго (полгода)
- C++ - 1 год
- Assembler - когда-то писал на нескольких дилектах - от больших до персоналок.

Вопрос был в том, что годочки капают и голова уже не такая свежая, поэтому подыскиваю для себя всеобъемлющий язык(-и), в котором я меньше буду зацикливаться на реализации алгоритмов. Конечно, старые языки не отметаются, просто крен должен быть смещен...


Ну про языки тут уже очень много копий сломано....

Я тут недавно общался с одним Гуру (именно так, без кавычек и с большой буквы... точнее наверное все буквы большие:-))):

-на чем ты пишешь?

-однозначно С++.

-а как же все эти OCaml, Lisp, Python и тд?

-...

В общем человек конечное знает ++ на порядок лучше меня, и при помощи stl, boost и своимх шаблнов вполне эффективно юзает все функциональные фичи в том числе. Причем сложную архитектуру классов не горолдит, выкручивается при помощи частичной спецификации шаболнов:-) Ричем по его словам разработка получается быстрее чем на питоне:-))

ну а для итаких убогих как я - C++ и питоон имно идеальная связка. Ну вот сейчас между делом учу OCaml - посмотрим... Python имно исмеет олдну существенное преимущество - он ОЧЕНЬ легко учится:-))

AIv ★★★★★
()
Ответ на: комментарий от AIv

он не Гуру, он альфа-самец среди обезьянок

dilmah ★★★★★
()

создание SQL таблиц по мета данным, вещь крайне элементарная и не требующая таких извратов которые обсуждались в предудущем треде. Делалось не раз и не два, и уверен, процентов 15% читателей форума это делали.

На мой скромный взгляд, у Вас проблема с формулировкой задачи, а не с программированием на том или ином языке;

Опишите для себя (или для форума) на нормальном русском языке, что и из чего, Вы хотите получить. Не прибегайте с громким фразам, смысл которых может трактоваться по разному, не используйте терминов привязанных к конкретным языкам программирования. Нарисуте всё на бумажке в том виде, который Вам понятен. Подумайте и перерисуйте еще раз. etc.. На протяжении всего процесса, НЕ ПОДХОДИТЕ к компъютеру - соблазн быстрого кодирования, велик, но вреден. Через день (или после длительной прогрулки) , вычеркните из схемы, всё без чего можно обойтись или реализовать после.. Вот теперь уже можно кодировать - и пофиг на каком языке..

С Уважением, Максим Кузнецов

anonymous
()
Ответ на: комментарий от anonymous

Спасибо за потраченное на меня время. Я не думаю, что задача столь тривиальна, т.к. таблицы не создаются влоб.

Я хочу единым интерфейсом (в wxWidgets - это ODBC) подключаться к различным типам БД (Interbase, MySql, MS Access и т.д.), собирать информацию по БД (списки таблиц, перечень полей, индексов, связей, ограничений и проч.) и с максимальной точностью переносить (создавать и заполнять) аналогичные таблицы/подмножества данных в другом формате хранения данных.

Конечно, это не просто конвертилка одной БД в другую, но подразумевается, что из нескольких (разных по типу) источников данных формировать один, результирующий.

Следующим этапом будет кое-что еще...

gtyrin
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.