powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Тип поля в результате запроса
10 сообщений из 10, страница 1 из 1
Тип поля в результате запроса
    #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
Тип поля в результате запроса
    #36713137
Korolyov_S,
Код: plaintext
CURSORSETPROP( 'Mapvarchar' , .t. ,  0 )
где-то в началае программы.
...
Рейтинг: 0 / 0
Тип поля в результате запроса
    #36713191
Korolyov_S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не прокатило. Есть еще варианты? Наверное Sql сервак должен знать какого типа поле будет у него в результате запроса
...
Рейтинг: 0 / 0
Тип поля в результате запроса
    #36713224
Korolyov_SНе прокатило.Прямо так и написало? Как проверялось? Есть еще варианты?А уже доказана неприемлемость предложенного варианта? Наверное Sql сервак должен знать какого типа поле будет у него в результате запросаНаверное. Тем более, что он и знает. Только при чем тут сервак, если курсор на клиенте? Точнее в фоксе. Или есть предположения, что типы полей фоксовому крсору задает сервак?
...
Рейтинг: 0 / 0
Тип поля в результате запроса
    #36713235
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korolyov_S,

обрами replace() ущё одним convert
...
Рейтинг: 0 / 0
Тип поля в результате запроса
    #36713359
З00001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TRIM(cCodeSdk) пробовал ?
...
Рейтинг: 0 / 0
Тип поля в результате запроса
    #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
Тип поля в результате запроса
    #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
Тип поля в результате запроса
    #36715046
Korolyov_S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините, не знал что так много ответов. Вопрос решил через 10мин и в форум не заглядывал.
Ответ как в последнем варианте, только сделал через convert()

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

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

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


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