powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Интересно, можно ли Character преобразовать в Memo?
5 сообщений из 5, страница 1 из 1
Интересно, можно ли Character преобразовать в Memo?
    #32448319
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может, вопрос и не совсем умный, но не праздный. В 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
Интересно, можно ли Character преобразовать в Memo?
    #32448455
Фотография NNN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теоретически такую функцию написать можно, например.
Код: 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
Интересно, можно ли Character преобразовать в Memo?
    #32448486
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это делается через временный курсор - макет

Код: 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
Интересно, можно ли Character преобразовать в Memo?
    #32449068
Cyv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Немного не по теме, но коль вопрос был затронут...
ВладимирМв исходной таблице поле имело размерность 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
Интересно, можно ли Character преобразовать в Memo?
    #32450404
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем.

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


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