Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Управление базой данных из приложений Borlanda, При загрузке базы требует пароль  
V
    Опции темы
MAXIQ
Дата 21.7.2007, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 30.12.2006

Репутация: нет
Всего: нет



    При загрузке базы данных созданной либо в Access либо в VisualFoxPro на стадии разработки, Borland асатанело требует какой-то пароль, который я не задавал вообще  ни на стадии создания базы данных ни на каком-либо другом этапе, как быть даже не знаю, прочитал самоучитель по базам в Borland-е но там ничего хорошего не нашел, в общем HELP!!!!!!!!
PM MAIL   Вверх
Rodman
Дата 21.7.2007, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 7
Всего: 122



Каким компонентами пользуешься?

свойство LoginPrompt поставь в False и запроса не будет...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
MAXIQ
Дата 22.7.2007, 01:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 30.12.2006

Репутация: нет
Всего: нет



Компоненты TTable и DataSource  а так же DBNavigator и DBGrid ни в какую не хочет присваиваться имя базы данных и имя таблицы, на таблице вылазит то же запрос пароля. Аналогично ведет себя если пойти через SQL Explorer но уже на стадии выбора имени базы данных, так как Borland-у надо показать на экране все таблицы которые есть в этой базе то запрос на пароль вылазит раньше. И как с этим бороться? И свойства такого я ни в одном используемом мной компоненте не нашел.

PM MAIL   Вверх
fish9370
Дата 22.7.2007, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 1
Всего: 1



Цитата(MAXIQ @ 22.7.2007,  01:30)
Компоненты TTable и DataSource  а так же DBNavigator и DBGrid ни в какую не хочет присваиваться имя базы данных и имя таблицы, на таблице вылазит то же запрос пароля. Аналогично ведет себя если пойти через SQL Explorer но уже на стадии выбора имени базы данных, так как Borland-у надо показать на экране все таблицы которые есть в этой базе то запрос на пароль вылазит раньше. И как с этим бороться? И свойства такого я ни в одном используемом мной компоненте не нашел.

это ты работаешь через BDE (Borland Data Engine).. дело в том, что DBF-таблица не является базой данных, в нормальном понимании, это всего лишь таблица и открывать ее нужно так:

Код

   Table1->Active=false;
   Table1->TableName="C:\\Program Files\\Borland\\CBuilder6\\Projects\\DBCorrector\\database\\keys.dbf";
   Table1->Active=true;


DataSource1->DataSet=Table1;
DBGrid1->DataSource=DataSource1;

все остальные настройки по дефолту.. на форме компоненты: TTable, TDataSource, TDBGrid и кнопка, в обработчике которой находится этот код..

Это сообщение отредактировал(а) fish9370 - 22.7.2007, 11:59


--------------------
undefined
PM MAIL WWW ICQ   Вверх
MAXIQ
Дата 23.7.2007, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 30.12.2006

Репутация: нет
Всего: нет



Таблица действительно прогрузилась. правда только та, что я сдалал специально для пробы без индексов, однако как только Borland видит поле с индексом разумеется начинаются проблемы.
Сама задача состоит в том, чтоб при единой базе данных предприятия, находящейся на сервере. или вообще на достаточно производительном простом компе, рулить ей с рабочих мест приложениями Borland-a при соблюдении сохранности и целостности данных, скорость может быть и не высокой, но все равно быстрее чем в ручную и бегом получится)), при том на одном месте может быть 1 комп но у каждого работника свой ехе-шник. (чтоб и не повадно было лазить где попало и кнопки лишние глаза не мозолили). Исходя из этих условий рулить 1 отвязанной таблицей явно недостаточно. Нужно прогружать базу на стадии проектирования чтоб была связка с самим принципом построения и заложенными условиями, а там этот пароль. А приложения Borland-а надо чтоб быстро можно было реагировать на изменение ситуации без ущерба для базы данных. Тем более что сам ехе-шник будет трудновато раскурочить без проектных файлов и нанести вред будет труднее, по крайней мере на уровне продвинутого юзера. Есть и еще одна заморочка: при регистрации через SQL-Explorer требует BisualFoxPro ODBC Driver, а в нете присутствует версия для Win95 и 98 по моложе не нашел, и система ХР ее  не признает и инсталить не хочет. В общем если есть идеи или предложения то внимательно вчитываюсь. 
PM MAIL   Вверх
fish9370
Дата 23.7.2007, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 1
Всего: 1



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


--------------------
undefined
PM MAIL WWW ICQ   Вверх
MAXIQ
Дата 24.7.2007, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 30.12.2006

Репутация: нет
Всего: нет



Мда... вот и поуправляли базой данных из Borlanda.... Еще есть у кого варианты по теме только а то забанят, под шумок можно и другие предложения)))
PM MAIL   Вверх
sexton
Дата 24.7.2007, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sexton=Пономарь (eng)
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 5.5.2004
Где: Ульяновск

Репутация: 5
Всего: 9



Если тебе нужна работа с DBF - Advantage Database Engine тебе в руки.

Добавлено через 11 минут и 21 секунду
Если тебе нужна работа с DBF - Advantage Database Engine тебе в руки.
PM MAIL WWW ICQ   Вверх
fish9370
Дата 24.7.2007, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 1
Всего: 1



Цитата(MAXIQ @ 24.7.2007,  12:57)
Мда... вот и поуправляли базой данных из Borlanda.... Еще есть у кого варианты по теме только а то забанят, под шумок можно и другие предложения)))

а что из Борланда управлять MySQL-базой никак?


--------------------
undefined
PM MAIL WWW ICQ   Вверх
MAXIQ
Дата 26.7.2007, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 30.12.2006

Репутация: нет
Всего: нет



Хотел спросить, а пароль вышибает только  у меня или еще кто-нибудь пробовал прогрузить базу данных FoxPro или Access с тем же результатом. А вообще SQL базой порулить я еще не пробовал, тем и займусь. А к участникам просьба все-таки попробовать грузануть базу, только не BCDEMOS она грузится без вопросов и применяется в качестве примера в литературе (зараза). Хотя может ее скопировать и раскурочить по своему............
PM MAIL   Вверх
MAXIQ
Дата 2.8.2007, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 30.12.2006

Репутация: нет
Всего: нет



Пробовал прогрузить базу в элементы со вкладки ADO, с тем же эффектом, пароль захотел. Брал базу у знакомого програмера, а то может моя с глюками, все равно пароля хочет, короче с Borlandom в этом вопросе придется прощаться(( потому, что не факт, что и на MySQL базу реакция с паролем не наступит.
PM MAIL   Вверх
MAXIQ
Дата 13.9.2007, 05:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 30.12.2006

Репутация: нет
Всего: нет



В общем вот статья на которую натолкнулся в нете, добрый человек SABROG, подробно объяснил как рулить из Borlanda MySQL базой еще год назад.

--------------------------------------------------------------------
Покопавшись на программерских форумах и форуме MySQL мне удалось таки собрать достаточно информации, чтобы наконец подключиться к MySQL серверу без всяких ADO, ODBC. Ни для кого не секрет, что для того, чтобы ваша программа заработала на другой машине - нужно настраивать DSN в ODBC, а для MySQL сервера на эту машину еще нужно поставить специальный компонент. Можно конечно включить инструкцию для пользователя как настраивать DSN, а также включить тот самый MySQL ODBC драйвер и наверно это будет неплохо в случае, если вы решили заработать денег на тех.поддержке. Далее идет инструкция "Step By Step", все манипуляции проделывались на BCB6.0. Для начала нужно скачать сам MySQL. Мой архив назывался так: mysql-noinstall-6.1.7-beta-win32 (у вас наверно будет поновее). Убедитесь, что вы запустили и настроили MySQL сервер, а также имеете права администратора на нем 
Начнем.

1. Копируем файл из папки lib\opt:
libmysql.dll
в отдельную папку - for_bcb\lib
2. Запускаем командную строку (cmd), переходим в папку где лежит implib:
c:\>n:
n:\>cd N:\Program Files\Borland\CBuilder6\Bin
n:\Program Files\Borland\CBuilder6\Bin>implib -c I:\for_bcb\lib\opt\libmysql.lib I:\for_bcb\lib\opt\libmysql.dll

3. Копируем папку include в папку for_bcb, находим строку:
#define my_socket SOCKET
и меняем ее на:
#define my_socket UINT_PTR
4. Создаем новый проект. 
5. Кидаем на форму Button1 и ListView1. 
6. Ставим свойство ListView1
ViewStyle = vsReport. 
7. Жмем Shift+F11 (Project->Add To Project). 
Выбираем Files of Type->lib, переходим в директорию for_bcb\lib
и выбираем файл libmysql.lib. 
8. Жмем Ctrl+Shift+F11 (Project->Options). Выбираем вкладку "Directories/Conditional". 
Жмем на кнопки с тремя точками в Include Path и Library Path.
В Include Path выбираем директорию for_bcb\include. В Library Path for_bcb\lib.
9. Сохраняем проект.
10. Добавляем две строчки в исходнике (F12):

Код:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#define __LCC__ // эту и
#include <mysql.h> // эту
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
Копируем for_bcb\lib\libmysql.dll в папку куда будет сохраняться скомпилированный
exe файл (обычно в той же директории что и файлы проекта, если речь не о BDS2006)

11. Пример приложения. Не забудьте изменить в коде логин и пароль на свои данные (администраторские). Возможно потребуется также поменять адрес сервера localhost на ваш IP. Программа выполняется SQL запрос к базе данных MySQL и выводит все данные из таблицы `db`

Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "MySQLpmain.h"
#define __LCC__
#include <mysql.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
MYSQL         *Con;
MYSQL_RES     *Res;
MYSQL_ROW      Row;
MYSQL_FIELD   *Fields;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
Con=mysql_init(Con);
Con=mysql_real_connect(Con,"localhost","root","123456","mysql",0,NULL,0);
        if(!Con) ShowMessage("Can not connect.");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
        if (Con){
                ListView1->Items->BeginUpdate();
                ListView1->Clear();
   AnsiString query="SELECT * FROM `mysql`.`db`;"; // magic string ;)
   mysql_real_query(Con,query.c_str(),query.Length());
    int f=mysql_errno(Con);
    if(f==0){
      Res=mysql_store_result(Con);
      int CountOfColumns=mysql_num_fields(Res);
      Fields=mysql_fetch_fields(Res);
              for(int i=0;i<CountOfColumns;i++){
              ListView1->Columns->Add();
              ListView1->Columns->Items[i]->Caption = Fields[i].name;
              }
      while ((Row = mysql_fetch_row(Res))){
        TListItem  *ListItem = ListView1->Items->Add();
                for(int j=0;j<CountOfColumns;j++){
                                                if (j == 0){
                                        ListItem->Caption = Row[j];
                                                }else{
                                        ListItem->SubItems->Add(Row[j]);
                                                }
                }
      }
                       ListView1->Items->EndUpdate();
    }else{
        ShowMessage("Error #: " + IntToStr(f) + char(13) + "Message: " + mysql_error(Con));
        }
                }
}
//---------------------------------------------------------------------------

--------------------------------------------------------------------------------
Последний раз редактировалось SABROG, 25.08.2006 в 12:57. 
PM MAIL   Вверх
Rodman
Дата 13.9.2007, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 7
Всего: 122



MAXIQ, совсем не обязательно брать левые компоненты для работы...
мона dbExpress и библиотеку просто положить в нужное место...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.1199 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.