Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / String -> Character / 6 сообщений из 6, страница 1 из 1
13.02.2004, 12:57
    #32408545
HelpNeeded
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
String -> Character
От Web-службы фокс 8 получает Dataset. Web-служба написана на VB.NET, возвращает результаты запроса к SQL Server. Поля SQL Server типа VARCHAR в Dataset пишутся как String. Фокс этот тип данных грузит в свой курсор и выдает MEMO-поле. Похоже, он считает, что длина типа данных String больше 255, поскольку в Dataset длина вообще не указана. Вопрос стандартный: как лечить? :)
...
Рейтинг: 0 / 0
13.02.2004, 14:22
    #32408760
NNN
NNN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
String -> Character
SELECT PADR(FieldName, 254) AS FieldName FROM CursorName
не подойдет?
...
Рейтинг: 0 / 0
13.02.2004, 14:29
    #32408776
HelpNeeded
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
String -> Character
2NNN

Да в принципе можно использовать и LEFT(). Только это что-ж, мало того, что из Dataset перегружаем все в фоксовые курсоры, так еще и из курсоров в другие курсоры перекачивать?
...
Рейтинг: 0 / 0
13.02.2004, 14:33
    #32408780
NNN
NNN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
String -> Character
А с web-сервисами не работал, поэтому не знаю, можно ли заранее указать тип поля, как например для Remote View через DBSETPROP(). Каков механизм создания и заполнения курсора?
...
Рейтинг: 0 / 0
13.02.2004, 15:05
    #32408851
HelpNeeded
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
String -> Character
LPARAMETERS txXML,toSchema,lnBuffering
LOCAL i As Integer
LOCAL llSuccess As Boolean
LOCAL loXMLAdapter,lcAlias,loException,lcErrorMsg

llSuccess=.T.

*Создание курсоров из таблиц Dataset.
TRY
loXMLAdapter=CREATEOBJECT("XMLAdapter")
IF VARTYPE(txXML)="O" AND VARTYPE(toSchema)="O"
loXMLAdapter.Attach(txXML,toSchema)
ELSE
llSuccess=.F.
ENDIF
*Создание курсоров из XML Dataset Tables Collection.
IF llSuccess
IF loXMLAdapter.Tables.Count>0
FOR i=1 TO loXMLAdapter.Tables.Count
lcAlias=loXMLAdapter.Tables.Item(i).Alias
IF USED(lcAlias)
USE IN (lcAlias)
ENDIF
loXMLAdapter.Tables.Item(i).ToCursor()
IF VARTYPE(lnBuffering)='N'
IF INLIST(lnBuffering,3,5)
SELECT(lcAlias)
CURSORSETPROP ("Buffering",lnBuffering)
GO TOP
ENDIF
ENDIF
ENDFOR
ELSE
llSuccess=.F.
ENDIF
ENDIF
CATCH TO loException
llSuccess=.F.
lcErrorMsg="Метод CreateCursorFromXML: "+TRANSFORM(loException.Errorno)+" - "+loException.Message
=MESSAGEBOX(lcErrorMsg,MB_OK+MB_ICONEXCLAMATION+MB_DEFBUTTON1,THISFORM.Caption)
ENDTRY
RELEASE loXMLAdapter

RETURN llSuccess
...
Рейтинг: 0 / 0
13.02.2004, 15:13
    #32408865
NNN
NNN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
String -> Character
ИМХО перед
loXMLAdapter.Tables.Item(i).ToCursor()
надо установить для полей нужный тип. Глянь в хелпе про XMLField.DataType и Visual FoxPro and XML Schema Data Type Mapping.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / String -> Character / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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