Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Тип поля в результате запроса / 10 сообщений из 10, страница 1 из 1
29.06.2010, 13:34
    #36713122
Korolyov_S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тип поля в результате запроса
Имею запрос к базе данных на Sql2000

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
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)

Можно ли на этапе формирования запроса задать тип поля?
...
Рейтинг: 0 / 0
29.06.2010, 13:40
    #36713137
Тип поля в результате запроса
Korolyov_S,
Код: plaintext
CURSORSETPROP( 'Mapvarchar' , .t. ,  0 )
где-то в началае программы.
...
Рейтинг: 0 / 0
29.06.2010, 13:56
    #36713191
Korolyov_S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тип поля в результате запроса
Не прокатило. Есть еще варианты? Наверное Sql сервак должен знать какого типа поле будет у него в результате запроса
...
Рейтинг: 0 / 0
29.06.2010, 14:06
    #36713224
Тип поля в результате запроса
Korolyov_SНе прокатило.Прямо так и написало? Как проверялось? Есть еще варианты?А уже доказана неприемлемость предложенного варианта? Наверное Sql сервак должен знать какого типа поле будет у него в результате запросаНаверное. Тем более, что он и знает. Только при чем тут сервак, если курсор на клиенте? Точнее в фоксе. Или есть предположения, что типы полей фоксовому крсору задает сервак?
...
Рейтинг: 0 / 0
29.06.2010, 14:10
    #36713235
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тип поля в результате запроса
Korolyov_S,

обрами replace() ущё одним convert
...
Рейтинг: 0 / 0
29.06.2010, 14:51
    #36713359
З00001
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тип поля в результате запроса
TRIM(cCodeSdk) пробовал ?
...
Рейтинг: 0 / 0
29.06.2010, 16:57
    #36713547
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тип поля в результате запроса
Korolyov_SНе прокатило. Есть еще варианты? Наверное Sql сервак должен знать какого типа поле будет у него в результате запроса


ага

смотри

на св-во

cursorschema

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


Код: 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.
33.
34.
35.
36.
37.
38.
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

...
Рейтинг: 0 / 0
29.06.2010, 17:00
    #36713556
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тип поля в результате запроса
+ такой запрос вернет посредством ф-и склэкзек
то, что нужно

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

понятно, что бред внутри каста на корректность я не анализирую
и советов не даю.
...
Рейтинг: 0 / 0
30.06.2010, 12:20
    #36715046
Korolyov_S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тип поля в результате запроса
Извините, не знал что так много ответов. Вопрос решил через 10мин и в форум не заглядывал.
Ответ как в последнем варианте, только сделал через convert()

Спасибо. Тема закрыта
...
Рейтинг: 0 / 0
30.06.2010, 12:25
    #36715064
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тип поля в результате запроса
Korolyov_SИзвините, не знал что так много ответов. Вопрос решил через 10мин и в форум не заглядывал.
Ответ как в последнем варианте, только сделал через convert()

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

обрати внимание на курсорадаптер,
и прекрати трясти сервер руками.
в старшей версии есть удобный базовый класс,
который позволяет решить задачу взаимодействия
с сервером быстро и абстрактно.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Тип поля в результате запроса / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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