Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Интересно, можно ли Character преобразовать в Memo? / 5 сообщений из 5, страница 1 из 1
19.03.2004, 03:39
    #32448319
neznajka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересно, можно ли Character преобразовать в Memo?
Может, вопрос и не совсем умный, но не праздный. В Foxe, на мой взгляд, достаточно есть функций преобразования типов - практически все типы данных с помощью встроенных функций можно преобразовать в тип Character , как наиболее общий. А сам Character можно ли подать в виде Memo ? Например, если в файле File1 есть символьное поле Field1 , то можно ли с помощью какой либо функции Function1 сделать так, чтобы в результате выполнения SQL -запроса типа: Select Function1(File1.Field1) as Fld_mem from File1 into table Q1 - в результирующем файле Q1 поле Fld_mem имело уже тип Memo ?
...
Рейтинг: 0 / 0
19.03.2004, 09:20
    #32448455
NNN
NNN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересно, можно ли Character преобразовать в Memo?
Теоретически такую функцию написать можно, например.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
*!* Предполагается, что test на самом деле не курсор,
*!* а существующая и открытая таблица
CREATE CURSOR test (test c( 10 ))
INSERT INTO test VALUES (SYS( 2015 ))
SELECT StrToMemo(test) as test FROM test && INTO TABLE TableName

FUNCTION StrToMemo
LPARAMETERS tcValue as String 
CREATE CURSOR temp (fld m)
INSERT INTO temp VALUES (tcValue)
RETURN temp.fld
ENDFUNC

Правда временый курсор функция не закрывает, но это мелочи..

Задачу в принципе можно решить проще, создавая новую таблицу не в SELECT, а руками
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
*!* Предполагается, что test на самом деле не курсор,
*!* а существующая и открытая таблица
CREATE CURSOR test (test c( 10 ))
INSERT INTO test VALUES (SYS( 2015 ))
CREATE TABLE TableName (FldName m)
INSERT INTO TableName SELECT test as FldName from test
SELECT TableName
BROWSE
...
Рейтинг: 0 / 0
19.03.2004, 09:36
    #32448486
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересно, можно ли Character преобразовать в Memo?
Это делается через временный курсор - макет

Код: plaintext
1.
2.
3.
4.
5.
6.
CREATE CURSOR Maket (FieldMemo M)

SELECT FieldMemo FROM Maket
UNION ALL
SELECT FieldChar FROM MyTab

USE IN Maket


Здесь MyTab - это уже твоя таблица

Дело в том, что команда Select-SQL первым проходом создает структуру итогового курсора, но обычными функциями создать структуру мемо-поля из символьных полей невозможно (физически - это не собственно файл, а ссылка на другой файл (FTP))

А при использовании опции UNION в качестве структуры принимается структура определенная по первой инструкции SELECT-SQL

Кстати, такой способ подходит и для обрезания размерности числовых полей. Т.е. например, в исходной таблице поле имело размерность N(10), а в итоговой тебе нужно N(5). Обычными средствами добится такого результата проблематично.
...
Рейтинг: 0 / 0
19.03.2004, 12:47
    #32449068
Cyv
Cyv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересно, можно ли Character преобразовать в Memo?
Немного не по теме, но коль вопрос был затронут...
ВладимирМв исходной таблице поле имело размерность N(10), а в итоговой тебе нужно N(5). Обычными средствами добится такого результата проблематично

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
CLOSE TABLES ALL
CREATE CURSOR CTemp (ntype N( 10 ))
DISPLAY STRUCTURE
INSERT INTO CTemp (ntype) VALUES ( 12345 )

LOCAL lcOldSetDecimals
lcOldSetDecimals = SET( "DECIMALS" )
SET DECIMALS TO  0 

SELECT VAL(TRANSFORM(ntype, "@R 99999 ")) AS ntype ;
	FROM CTemp ;
	INTO CURSOR CResult

SET DECIMALS TO &lcOldSetDecimals
DISPLAY STRUCTURE
...
Рейтинг: 0 / 0
20.03.2004, 23:39
    #32450404
neznajka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересно, можно ли Character преобразовать в Memo?
Спасибо всем.

To ВладимирМ:
Ваш вариант с UNION - оказался наиболее подходящим, ибо он дает возможность провести преобразование прямо в теле SQL-запроса, а мне именно это и надо было. Спасибо огромное.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Интересно, можно ли Character преобразовать в Memo? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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