powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Работа с ADOConnection,смена бд.
16 сообщений из 16, страница 1 из 1
Работа с ADOConnection,смена бд.
    #38170941
Oxotnuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
void __fastcall TForm1::ComboBox1DropDown(TObject *Sender)
{
ComboBox1->Items->Clear();
try{
 ADOQuery1->SQL->Clear();
 ADOQuery1->SQL->Add("SELECT name  FROM sysdatabases");
 ADOQuery1->Open();
 ADOQuery1->First();
  while(!ADOQuery1->Eof)
 {
  ComboBox1->Items->Add(ADOQuery1->FieldByName("name")->AsString);
  ADOQuery1->Next();
 }
   }catch(...){}
}


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
void __fastcall TForm1::ComboBox1Change(TObject *Sender){
{
if(!ComboBox1->Text.IsEmpty())
   {
    ADOConnection1->DefaultDatabase=ComboBox1->Items[ComboBox1->ItemIndex].ToString();
   }
}
 
}


Просто если я сменю бд, один раз,последующий раз я не смогу изменить,потому что я уже уйду из системной бд и у меня уже не будет таблички sysdatabases.
ADOConnection1 DefaultDatabase - master первый раз с таким параметром все ок меняется.
Так собственно вопрос,как мне хранить и использовать данные первого запроса, в переменной или еще как то?
Было бы не плохо с примером)
Либо подскажите,как правильно организовывать сессию:)
для прыганья по бд, и динамические использовать ADOStoredProc
...
Рейтинг: 0 / 0
Работа с ADOConnection,смена бд.
    #38171007
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OxotnukПросто если я сменю бд, один раз,последующий раз я не смогу изменить,потому что я уже уйду из системной бд и у меня уже не будет таблички sysdatabasesда ну
откройте SSMS и попробуйте выполнить
Код: sql
1.
2.
3.
4.
use tempdb
go
select count(*) as cnt from master..sysdatabases
go

у меня, например, выдает
Код: sql
1.
2.
3.
4.
5.
cnt
-----------
61

(1 row(s) affected)
...
Рейтинг: 0 / 0
Работа с ADOConnection,смена бд.
    #38171029
Oxotnuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Паганель, не совсем понял логики,а зачем мне получать кол-во баз?
...
Рейтинг: 0 / 0
Работа с ADOConnection,смена бд.
    #38171031
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У Вас мой примерчик выполняется или нет?
...
Рейтинг: 0 / 0
Работа с ADOConnection,смена бд.
    #38171037
Oxotnuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да,конечно.
...
Рейтинг: 0 / 0
Работа с ADOConnection,смена бд.
    #38171043
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OxotnukДа,конечно.следовательно, sysdatabases доступна
всё
...
Рейтинг: 0 / 0
Работа с ADOConnection,смена бд.
    #38171057
Oxotnuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Расскажу подробнее.
Изначально использую
ADOConnection, в нем указывается обязательным параметром, дефаулт датабейс(указал master). собственно откомилировав программу и запустив, я уже имею конекшен на сервере.
Идем далее я хочу получить список БД на сервере с помощью combobox. я его получаю,на данный момент я нахожусь еще в базе данных master. после чего я хочу изменить текущее место положение и перейти в другую базу данных. Я делаю AdoConnection->DefualtDatabase=база данных. Собвственно я меняю бд, но последующий раз я её не изменю.потому что select в комбобокс я не смогу получить,из за того,что я уже не нахожусь в базе данных мастер,и перепрыгнуть как делают всякие клиенты СУБД,я так же не смогу, собственно,я и пытаюсь реализовать этот переход :)

Вроде понятно мысль изложил. :)
...
Рейтинг: 0 / 0
Работа с ADOConnection,смена бд.
    #38171061
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oxotnukselect в комбобокс я не смогу получить,из за того,что я уже не нахожусь в базе данных мастеря только что показал, что можно обращаться к sysdatabases не находясь в базе данных мастер
чего еще надо-то?
...
Рейтинг: 0 / 0
Работа с ADOConnection,смена бд.
    #38171068
Oxotnuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да пробовал я делать так (master..sysdatabase)
Я знаю,что можно так выполнять,но программа всеравно крашится....
...
Рейтинг: 0 / 0
Работа с ADOConnection,смена бд.
    #38171076
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OxotnukДа пробовал я делать так (master..sysdatabase)
Я знаю,что можно так выполнять,но программа всеравно крашится....у ошибок SQL обычно есть текст, по которому можно было бы определить причину

кроме того, если в ответ на один и тот же SQL сервер одному клиенту дает ответ, а другому - ошибку,
то возможно не хватает прав, тогда рекомендую обратиться к DBA
...
Рейтинг: 0 / 0
Работа с ADOConnection,смена бд.
    #38171198
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oxotnuk, зачем ты в ComboBox1DropDown получаешь список БД?
Получи его 1 раз при создании формы например.
...
Рейтинг: 0 / 0
Работа с ADOConnection,смена бд.
    #38171202
Oxotnuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m_Sla,А если в данный момент я зашел, а после создали БД,а у меня то этой БД не будет...
...
Рейтинг: 0 / 0
Работа с ADOConnection,смена бд.
    #38171226
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oxotnuk, создай отдельный ADOConnection для мастер БД.
...
Рейтинг: 0 / 0
Работа с ADOConnection,смена бд.
    #38171230
Oxotnuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m_Sla,Уже делал, оно вешает еще коннект к серверу,а мне это критично.
Вообщем по сути,помогите мне результат первого запроса куда то положить....
...
Рейтинг: 0 / 0
Работа с ADOConnection,смена бд.
    #38171271
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oxotnuk, подключил отдельный коннект к мастер БД, получил данные, отключил коннект. Зачем его постоянно держать?
Сохранять примерно так (пишу без Билдера, возможны ошибки).
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
TStrings *first_query;


в КреатеФорм()
{
        first_query=new TSringList;
        ...
}


void __fastcall TForm1::ComboBox1DropDown(TObject *Sender)
{
ComboBox1->Items->Clear();

{
try{
 ADOQuery1->SQL->Clear();
 ADOQuery1->SQL->Add("SELECT name  FROM sysdatabases");
 ADOQuery1->Open();
 ADOQuery1->First();
  while(!ADOQuery1->Eof)
 {
  //ComboBox1->Items->Add(ADOQuery1->FieldByName("name")->AsString);
  first_query->Add(ADOQuery1->FieldByName("name")->AsString);
  
  ADOQuery1->Next();
 }
   }catch(...){}
}
  ComboBox1->Items=first_query;

}
...
Рейтинг: 0 / 0
Работа с ADOConnection,смена бд.
    #38171288
Oxotnuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m_Sla,Спасибо огромное,получилось! :)
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Работа с ADOConnection,смена бд.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]