| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Перевести Delphi на C++Builder |
| Автор: Alca 13.1.2009, 10:51 | ||||||
| C++Builder 2009. Есть код на Делфи:
Собственно интересует вот эта часть:
Получаю:
Чего не так? |
| Автор: MuForum 13.1.2009, 22:17 |
| #1, Alca - Я в этом не спец, но очевидно, что метода 'Create' в этом классе нету. (В Help'е билдера можно просмотреть все методы) - Как решить проблему, к сожалению не не знаю =( - Никогда с этим не работал. # Добавлено: Может в новой версии компилятора необходимо использовать другой метод, например 'OlePropertySet()'. - Это предположение. |
| Автор: mrbrooks 13.1.2009, 23:20 | ||
| Как я понимаю деляфиный код создает аксессовскую бд. Я лично создаю сам файл в 2009 так:
|
| Автор: Alca 13.1.2009, 23:21 |
| Гы. А если Эксес не установлен? |
| Автор: mrbrooks 13.1.2009, 23:22 |
| А уже в ADOConnection->ConnectionString формирую строку "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+"C:\\888.mdb" и т.д. Добавлено через 2 минуты и 39 секунд с сим не сталкивался. если не стоит - это не катит. |
| Автор: Alca 13.1.2009, 23:38 |
| Нужно создать mdb-шник через ADO в С++Builder 2009 |
| Автор: Данкинг 14.1.2009, 00:26 |
Я так понимаю, если оный не установлен, то строка "Microsoft.Jet.OLEDB.4.0" определённо не прокатит, поскольку такого драйвера в системе нет. А этот пример на Дельфи (из DRKB, как я понимаю) я неоднократно юзал, работает отлично (разумеется, при установленном Access). |
| Автор: Alca 14.1.2009, 00:38 | ||
Данкинг, ты не прав. |
| Автор: Данкинг 14.1.2009, 00:43 |
Почему? А откуда возьмётся драйвер "Microsoft.Jet" ? |
| Автор: Alca 14.1.2009, 00:52 |
| ADO с виндой идет. |
| Автор: Данкинг 14.1.2009, 00:56 |
| Ну а почему же тогда через ADO нельзя подключиться к базе FoxPro, если на данном компе фокс не установлен? |
| Автор: Alca 14.1.2009, 00:58 |
| А почему можно создать мдб-шник без эксеса? MSSQL Server тоже не будет через ADO работать без эксеса? |
| Автор: Данкинг 14.1.2009, 01:05 |
Как именно создать - этим вот кодом? Без драйвера SQL-сервера не будет. |
| Автор: Alca 14.1.2009, 01:07 |
| |
| Автор: Romikgy 14.1.2009, 01:11 | ||
|
| Автор: mrbrooks 14.1.2009, 08:44 | ||
Romikgy, я так делал - но у меня Борман генерирует ошибку
хотя возможно есть смысл поковыряться в настройках компилятора. Добавлено через 24 секунды Говорю о C++ Builder 2009 |
| Автор: Romikgy 14.1.2009, 10:16 |
я в нем и проверял , ошибок при компиляции не было одна разница с твоим кодом !!!!! так работает а так нет ! незнаю в чем у них отличие , но с олевариант не работает, там другой прототип , но с ним я не разобрался(( |
| Автор: Alca 14.1.2009, 10:20 | ||||
Не создаётся! Я в шоке. Нет слов. |
| Автор: mrbrooks 14.1.2009, 10:22 |
| Romikgy, Разобрался. Все работает Alca, у меня все ок. |
| Автор: Alca 14.1.2009, 10:25 |
| Засвети код. |
| Автор: mrbrooks 14.1.2009, 10:27 | ||
|
| Автор: Alca 14.1.2009, 10:41 |
| Заработало. Я так понял, что второй аргумент в функции OleProcedure это не юникодная строка. Чего так? |
| Автор: Romikgy 14.1.2009, 10:46 |
| да и первый не юникод имхо по мануалам на дельфи variant это ansistring olevariant это widestring в чем разница в реализаций трудный вопрос поидее должно было быть наследование но инфы на этот счет не нашел(( |
| Автор: Alca 14.1.2009, 10:56 |
| Второй аргумент это WideString. Ну и где же поддержка юникода? |
| Автор: mrbrooks 14.1.2009, 10:58 |
| Интересно. Сам Variant действительно поддерживает только AnsiString, а вот аргументы в методе OleProcedure Unicode поддерживают. Но компиллер именно на аргументы в юникоде и матерится. Это возмутительно - либо есть какой то нюанс. |
| Автор: Alca 14.1.2009, 11:16 | ||||
| Инересно было бы докопаться до истины. В самом методе путь к файлу это WideString строка, а передается в метод UnicodeString строка и всё работает как надо, файл создаётся. Я так понял что Unicode при вызове функции плавно перешел в WideString......
Добавлено @ 11:29 Надо Unicode в WideString переганять.
|