Страница 1 из 1
					
				подключение к БД Галактики при помощи C++Builder
				Добавлено: 19 фев 2003, 11:01
				 Dyoma
				Ребята кто нибудь знает, может сталкивался как посредству Buildera подключиться к галактической базе (через BDE вроде как все нормально проходит, но не доганяет значения в поле nRec (в галактике формат поля COMP, а Builder его не догоняет))может кто знает?
			 
			
					
				Re: подключение к БД Галактики при помощи C++Builder
				Добавлено: 19 фев 2003, 12:07
				 bs
				Вообще-то поиском можно попользоваться, обсуждалось уже когда-то вроде бы
 А нреки мне когда-то посоветовали доставать так:
void __fastcall TForm_SubdivChoice::BtnSubdivOKClick(TObject *Sender)
{
 retv.ChosenDepName = Query1->FieldByName("name")->AsString;
 Query1->Close();
 Query1->SQL->Text = "select CONVERT(NRec, SQL_CHAR)+'m' "
                     "from katpodr where name='"
                     + retv.ChosenDepName + "'";
 Query1->Open();
 retv.ChosenDepNrec = Query1->Fields->Fields[0]->AsString;
 retv.ChosenDepNrec.SetLength(retv.ChosenDepNrec.Length()-1);
}
Примечание: поле retv класса TForm_SubdivChoice у меня объявлено так:
 struct myst {
  AnsiString ChosenDepNrec, // Nrec (галактический) выбранного подразделения
  ChosenDepName; // Имя выбранного подразделения
 } retv;
Вот так 

 
			
					
				Re: подключение к БД Галактики при помощи C++Builder
				Добавлено: 20 фев 2003, 05:00
				 Dyoma
				Попробывал как ты написал, но чего то он на начинает ругаться на, что после слова SELECT стоит (CONVERT и т.д.). Может поподробней напишешь (какой сервер баз данных используешь? у меня Pervasiv 7.0) ???
			 
			
					
				Re: подключение к БД Галактики при помощи C++Builder
				Добавлено: 20 фев 2003, 15:18
				 bs
				У нас Pervasive 2000.
 Читай доку про SQL к первасиву.
 И напиши запрос свой и как ругается -- мб сразу будет ясно где ошибку искать.
 Тестить запросы можно в первасивном контроль центре.
			 
			
					
				Re: подключение к БД Галактики при помощи C++Builder
				Добавлено: 21 фев 2003, 12:33
				 GTHack
				может правильнее использовать спец.компоненты доступа к первасиву ?
			 
			
					
				Re: подключение к БД Галактики при помощи C++Builder
				Добавлено: 25 фев 2003, 09:13
				 Dyoma
				Большое спасибо все получилось связи работают под Pervasive 2000.
			 
			
					
				Re: подключение к БД Галактики при помощи C++Builder
				Добавлено: 08 мар 2003, 00:22
				 DmitryZ
				можно через АДО - ОДБСи Провайдер
единственное чть не нравится - нужно все поля типа Comp (в Билдере TFloatField) перевести в TVariantField, тогда все работает и добавить и т.п.
			 
			
					
				Re: подключение к БД Галактики при помощи C++Builder
				Добавлено: 28 мар 2003, 20:19
				 Dee
				Дополнение к посту выше от Dmitry
нужно руками!
1 в объект TADODataSet добавить необходимые поля
2 удалить поля которые в галке типа Comp - в бормане TFloatField
3 вместо них добавить одноименные но типа TVariantField
удачи
			 
			
					
				Re: подключение к БД Галактики при помощи C++Builder
				Добавлено: 22 май 2003, 10:04
				 IgorA
				Гениальная идея - добавить "m" в конце записи.
Я столько мучился с конвертацией comp, но так и не врубился, зачем BDE , конветрированное мной в строку поле, преобразует в Float.
Большое спасибо LightImage.
			 
			
					
				Re: подключение к БД Галактики при помощи C++Builder
				Добавлено: 26 май 2003, 13:08
				 АлексейН
				Можно боле простой вопрос - 
как сравнить даты (Pervasiv2000 +CBuilder+PDAC) -
выражения вида 
katsopr.dsopr = '01.01.90'
katsopr.dsopr = '01/01/90' не проходят.
SQL ругается   :-[
			 
			
					
				Re: подключение к БД Галактики при помощи C++Builder
				Добавлено: 26 май 2003, 14:10
				 АлексейН
				ага, все
надо '1990-01-01' =)
			 
			
					
				Про даты
				Добавлено: 26 май 2003, 15:13
				 bs
				2 АлексейН
 В первасивном хелпе в указателе смотри Date arithmetic
2 IgorA
 Идея не моя, меня надо благодарить только за то что я тут лишний раз её повторил =)
			 
			
					
				Re: Про даты
				Добавлено: 11 июл 2003, 18:33
				 kircom
				Через dbExpress (см. Delphi6-7 а на Pervasive драйвер для этого) кто нибудь ходил к БД Галактики?
			 
			
					
				
				Добавлено: 01 янв 2007, 19:49
				 malor
				Как прописать файлы примеров из DEMODATA(т.е. те, что поставляются в составе Pervasive) в BDE Administrator ?
Намечаю поработать с базами PSQL в BuilderC++. Жму правой кнопкой на слове Databases->New...
Появляется окошечко New Database Alias с предложением выбрать Database Driver Name. Какое выбирать ?
			 
			
					
				
				Добавлено: 05 янв 2007, 15:26
				 igornov
				Hi!
Я по привычке работаю через BDE... и естественно была проблема с 
отображением и использованием nrec-ков.
Одним из решений было создать в MS SQL пользовательскую функцию:
CREATE FUNCTION dbo.bi_(@nrec binary(8))  
RETURNS varchar(18) AS  
BEGIN 
   declare @str varchar(18)
   exec master..xp_varbintohexstr @nrec, @str out
   return @str
END
и дать права  execute на xp_varbintohexstr (Extended) роли public.
затем все нужные поля с nrec-ами вызывать в запросе как 
select dbo.bi_(f$nrec) from таблица...
Вторым решением  это преобразование tbytesfield в Builder-е... (это немного сложнее), но я на самом деле использую Delphi, поэтому приводить код преобразования не буду, так как это не по теме. Если кому интересно то приведу  в этой ветке...