C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Псевдонимы и база
Jess
  Отправлено: 20.02.2006, 20:24


Дежурный стрелочник

Группа: Участник
Сообщений: 70



Привет всем, подскажите как из ситуации выйти...
Проблемма рассс.
Создал маленькую базу данных все работает, при миграции на другой комп выбрасывает ошибку:
"Неизвестная база данных"
"Псевдоним mybase"
такая ошибка свидетельствует о том что BDE не понимает алиас который я при создании базы
у себя создал и зарегистрировал. как быть?
Проблемма два.
даже при "нормальном" алиасе при переносе mybase.db, ака базы в любое другое
место на диске программа отказывается работать
оно и понятно, прога не видит базу, юзер инсталит в свою папку и алиас который я прописан
в BDE Administrator отдыхает красиво, прога не видит базу.
Как быть?
Спасибо ...
Jess
  Отправлено: 20.02.2006, 21:36


Дежурный стрелочник

Группа: Участник
Сообщений: 70



посмотрелна на машине где ошибка была, BDE проинтален а дров под paradox нету, киньте линк на дрова......спасибо

Отредактировано Jess — 20/02/2006, 21:55
BadMan
Отправлено: 20.02.2006, 22:20


Дежурный стрелочник

Группа: Участник
Сообщений: 37



Посмотри HELP по компоненту TSession
В нем есть методы создания, изменения, удаления алиасов на лету, из программы.
При таком раскладе можно создать алиас при первом запуске программы и не парится.
Jess
  Отправлено: 21.02.2006, 02:20


Дежурный стрелочник

Группа: Участник
Сообщений: 70



А может можно без этих алиасов как-то "жить", но с BDE, а то всю малину портят...
Guest
Отправлено: 21.02.2006, 04:22


Не зарегистрирован







QUOTE (Jess @ 21/02/2006, 02:20)
А может можно без этих алиасов как-то "жить", но с BDE, а то всю малину портят...

Можно, но хорошо ли — это уже спорный вопрос.

Для всех Table DatabaseName нужно сделать пустым.
И перед открытием какой-либо таблицы, активным
директорием должен быть каталог этой таблицы.
Для этого достаточно, чтоб exe модуль был в этом каталоге.

Или же в TableName нужно прописать полный путь к таблице + имя таблицы.


Jess
  Отправлено: 21.02.2006, 17:27


Дежурный стрелочник

Группа: Участник
Сообщений: 70



Попробуемс, спасибо
BadMan
Отправлено: 21.02.2006, 17:59


Дежурный стрелочник

Группа: Участник
Сообщений: 37



QUOTE (Jess @ 21/02/2006, 02:20)
А может можно без этих алиасов как-то "жить", но с BDE, а то всю малину портят...

Есть компонент TDatabase

В хелпе написано, что в качестве имени базы данных может выступать как алиас, так и ручная настройка драйвероа и параметров подключения.

Не вижу смысла задавать в каждой таблице алиас отдельно. Я лично на такой вещи обжегся — когда нужно было поменять алиас (название) и пришлось править его во всех таблицах проекта.
Поэтому один раз настроил сей
Jess
  Отправлено: 21.02.2006, 21:15


Дежурный стрелочник

Группа: Участник
Сообщений: 70



Да не уже все путем, я указал путь к имени таблицы и все пашет, не указавая имя базы данных как посоветовал Guest, за что ему сенкс большой, только он говорил что это не очень правильно или коректно, подскажите почему, все работает нормально........
Guest
Отправлено: 21.02.2006, 22:18


Не зарегистрирован







QUOTE (Jess @ 21/02/2006, 21:15)
только он говорил что это не очень правильно или коректно, подскажите почему, все работает нормально........

Скорей всего я имел ввиду, что не совсем привычно.
Если хорошу помню, из всех таблиц в своих программах, только
2 открывал без aliasa, но для них каталог указывался входе выполнения программы.
BadMan
Отправлено: 21.02.2006, 22:46


Дежурный стрелочник

Группа: Участник
Сообщений: 37



Естественно все работает — я же с этим не спорил
Если модуль данных один и в нем десяток таблиц — можно в каждой указать имя файла.
Если модулей данных десяток, да еще работаешь с разных машин (на работе, дома на ноутбуке — где все в другом месте лежит) или еще где, то удобнее настройку базы держать в одном месте.

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

Вообще вроде как монстры прикладники по БД говорят что соединение с БД должно быть одно — типа хороший тон.
Jess
  Отправлено: 22.02.2006, 02:17


Дежурный стрелочник

Группа: Участник
Сообщений: 70



ещё вопрос ну немного не по теме, я создавал мне можно:)
хочу чтобы в DBImage отображались разные картинки при серфе по DBGrid'y, новая строка новая картинка, вопрос:
непойму как они грузятся из этого дбгрида, есть пример fishfact в стандартных билдеровских примерах, не могу понять как какртинку читает из грида, мож кто подскажет в двух словах.....сенкс всем
Valdemar
Отправлено: 22.02.2006, 09:50


Мастер участка

Группа: Участник
Сообщений: 433



Картинки грузятся не из DBGrid, а из набора данных. DBGrid как и DBImage данные только отбражают.
DBImage надо задать DataSource и имя поля, содержащего картинку.
Jess
  Отправлено: 22.02.2006, 17:58


Дежурный стрелочник

Группа: Участник
Сообщений: 70



да, а как картинку вставить в саму таблицу, откуда(database desktop) или откуда??? вот это не пойму


Отредактировано Jess — 22/02/2006, 18:08
Valdemar
Отправлено: 26.02.2006, 10:58


Мастер участка

Группа: Участник
Сообщений: 433



Сделайте параметрический запрос для вставки картинки в таблицу. Для параметра задайте графический тип. Перед выполнением запроса читайте картинку из файла в параметр.
CODE
Query1->ParamByName("p")->LoadFromFile("01.bmp",ftGraphic);
Query1->ExecSQL();
Jess
Отправлено: 28.02.2006, 01:38


Дежурный стрелочник

Группа: Участник
Сообщений: 70



Спасибо, я уже реализовал через обычный TImage, у меня на не КВЕРИ а Table поэтому через неё нужно...
спасибо всем !!!!!!!!

Вернуться в Работа с базами данных в C++Builder