Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Тип поля в результате запроса  [new]
Korolyov_S
Member

Откуда:
Сообщений: 106
Имею запрос к базе данных на Sql2000

IF SQLEXEC(ThisForm.nCurConnection,;
   "Select Id As Id_SprUchet, nCodeSdk, nCanal, "+;
   "       Replace(Left(Convert(Char(13), nCodeSdk), 10)+Str(nCanal, 3), ' ', '0') As cCodeSdk "+;
   "  From Serj.SprUchet Where nCanal>1 Order By nCodeSdk, nCanal", "curCanalList")>0
 
  ** Блок команд

   USE IN curCanalList
ELSE 
   =MESSAGEBOX('Проблемы с получением данных.'+CHR(13)+'Возможно потеряна связь с сервером',0+16,'Непонятки')
ENDIF 

В результате запроса получил курсор с полем cCodeSdk типа Memo, а мне нужен VarChar(13)

Можно ли на этапе формирования запроса задать тип поля?
29 июн 10, 13:34    [9017702]     Ответить | Цитировать Сообщить модератору
 Re: Тип поля в результате запроса  [new]
проходящий.
Guest
Korolyov_S,
CURSORSETPROP( 'Mapvarchar' , .t. , 0)
где-то в началае программы.
29 июн 10, 13:40    [9017775]     Ответить | Цитировать Сообщить модератору
 Re: Тип поля в результате запроса  [new]
Korolyov_S
Member

Откуда:
Сообщений: 106
Не прокатило. Есть еще варианты? Наверное Sql сервак должен знать какого типа поле будет у него в результате запроса
29 июн 10, 13:56    [9018024]     Ответить | Цитировать Сообщить модератору
 Re: Тип поля в результате запроса  [new]
проходящий.
Guest
Korolyov_S
Не прокатило.
Прямо так и написало? Как проверялось?
Есть еще варианты?
А уже доказана неприемлемость предложенного варианта?
Наверное Sql сервак должен знать какого типа поле будет у него в результате запроса
Наверное. Тем более, что он и знает. Только при чем тут сервак, если курсор на клиенте? Точнее в фоксе. Или есть предположения, что типы полей фоксовому крсору задает сервак?
29 июн 10, 14:06    [9018167]     Ответить | Цитировать Сообщить модератору
 Re: Тип поля в результате запроса  [new]
AleksMed
Member

Откуда: Россия, Серпухов-Москва
Сообщений: 1546
Korolyov_S,

обрами replace() ущё одним convert
29 июн 10, 14:10    [9018215]     Ответить | Цитировать Сообщить модератору
 Re: Тип поля в результате запроса  [new]
З00001
Guest
TRIM(cCodeSdk) пробовал ?
29 июн 10, 14:51    [9018644]     Ответить | Цитировать Сообщить модератору
 Re: Тип поля в результате запроса  [new]
прошелмимо
Member [заблокирован]

Откуда: Из Курска понаехал
Сообщений: 10363
Korolyov_S
Не прокатило. Есть еще варианты? Наверное Sql сервак должен знать какого типа поле будет у него в результате запроса



ага

смотри

на св-во

cursorschema

курсорадаптера


close databases all

local lcConnString, lnConnection, ;
	loMyCAD as CursorAdapter, ;
	laErrors[1]
text to lcConnString noshow pretext 15
	Driver=SQL Server;
	SERVER=.\SQLSERVER2005;
	DATABASE=Test;
	uid=sa;
	pwd=as;
endtext	
lnConnection = sqlstringconnect(lcConnString)
if lnConnection<=0
   messagebox('не подцепился')
   return 
endif

loMyCAD = createobject('CursorAdapter')
with loMyCAD
	.Alias              = 'MyAlias'
	.DataSourceType     = 'ODBC'
	.DataSource         = lnConnection
	.SelectCmd          = "select Replace(Left(Convert(Char(13), f7), 10)+Str(f8, 3), ' ', '0') As cCodeSdk from dbo.t1"
	.Tables             = 't1'
	.BufferModeOverride = 5
	.cursorschema       = "cCodeSdk v(13)"
	.UpdatableFieldList = ''
	.updateNameList     = ''
	.usetransactions    = .f.
	if .CursorFill(.t.)
		brow
	else
		aerror(laErrors)
		messagebox(laErrors[2])
	endif .CursorFill(.t.)
endwith

29 июн 10, 16:57    [9019111]     Ответить | Цитировать Сообщить модератору
 Re: Тип поля в результате запроса  [new]
прошелмимо
Member [заблокирован]

Откуда: Из Курска понаехал
Сообщений: 10363
+ такой запрос вернет посредством ф-и склэкзек
то, что нужно

select Cast(Replace(Left(Convert(Char(13), f7), 10)+Str(f8, 3), ' ', '0') as varchar(13)) As cCodeSdk from dbo.t1

понятно, что бред внутри каста на корректность я не анализирую
и советов не даю.
29 июн 10, 17:00    [9019136]     Ответить | Цитировать Сообщить модератору
 Re: Тип поля в результате запроса  [new]
Korolyov_S
Member

Откуда:
Сообщений: 106
Извините, не знал что так много ответов. Вопрос решил через 10мин и в форум не заглядывал.
Ответ как в последнем варианте, только сделал через convert()

Спасибо. Тема закрыта
30 июн 10, 12:20    [9023597]     Ответить | Цитировать Сообщить модератору
 Re: Тип поля в результате запроса  [new]
прошелмимо
Member [заблокирован]

Откуда: Из Курска понаехал
Сообщений: 10363
Korolyov_S
Извините, не знал что так много ответов. Вопрос решил через 10мин и в форум не заглядывал.
Ответ как в последнем варианте, только сделал через convert()

Спасибо. Тема закрыта


обрати внимание на курсорадаптер,
и прекрати трясти сервер руками.
в старшей версии есть удобный базовый класс,
который позволяет решить задачу взаимодействия
с сервером быстро и абстрактно.
30 июн 10, 12:25    [9023635]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить