powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Регистр в именах полей
8 сообщений из 8, страница 1 из 1
Регистр в именах полей
    #37781815
Shizuku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Интересно, можно ли использовать в именах полей символы разного регистра - это сделало бы работу более понятной, см. файл...
...
Рейтинг: 0 / 0
Регистр в именах полей
    #37781821
Shizuku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Регистр в именах полей
    #37782027
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShizukuИнтересно, можно ли использовать в именах полей символы разного регистра - это сделало бы работу более понятной, см. файл...
Если имеете ввиду строчные-прописные, то нет. А если на русском-английском - попробуйте :)
...
Рейтинг: 0 / 0
Регистр в именах полей
    #37782145
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имена (полей, переменных и т.д.) - регистронезависимы для компилятора, но вам же никто в самом коде не запрещает изображать имена так, как вам удобно, с большими и маленькими буквами. Вы-то ведь как разработчик работаете исключительно с кодом, а приведенный вами пример ручного создания структуры таблицы - это одна из возможностей, ведь есть и Create/Alter Table .
...
Рейтинг: 0 / 0
Регистр в именах полей
    #37783002
Shizuku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM,

а есть ли способ сгенерить код для создания таблиц по уже готовым полям? Как-то неохота все перебирать заново.
...
Рейтинг: 0 / 0
Регистр в именах полей
    #37783006
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно, есть
Вы бы только более полно намекнули, что означает это ваше "по уже готовым полям"...
...
Рейтинг: 0 / 0
Регистр в именах полей
    #37783053
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
См. справку по командам COPY STRUCTURE, COPY STRUCTURE EXTENDED. Или что-то типа этого
Код: sql
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.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
*:--------------------------------------------------------------------
*:
*:	Procedure:	xpCreateStringFromTable
*:
*:--------------------------------------------------------------------
PROCEDURE xpCreateStringFromTable
*!* создает строку создания таблицы из готовой таблицы

USE ? SHARED
AFIELDS(aFld)

cString = 'CREATE TABLE '+LOWER(SUBSTR(DBF(),RAT('\',DBF())+1,RAT('.',DBF())-RAT('\',DBF())-1))+' FREE ('
FOR i=1 TO ALEN(aFld,1)
	cString=cString+aFld(i,1)+' '+aFld(i,2)
	DO CASE
		CASE aFld(i,2)='N'
			cString=cString+'('+LTRIM(STR(aFld(i,3)))+','+LTRIM(STR(aFld(i,4)))+')'
		CASE aFld(i,2)='F'
			cString=cString+'('+LTRIM(STR(aFld(i,3)))+','+LTRIM(STR(aFld(i,4)))+')'
		CASE aFld(i,2)='C'
			cString=cString+'('+LTRIM(STR(aFld(i,3)))+')'
		CASE aFld(i,2)='V'
			cString=cString+'('+LTRIM(STR(aFld(i,3)))+')'
		CASE aFld(i,2)='Q'
			cString=cString+'('+LTRIM(STR(aFld(i,3)))+')'
	ENDCASE
	IF ALEN(aFld,1)!=i
		cString=cString+', '
	ENDIF
ENDFOR
cString=cString+')'
USE
_cliptext = cString

RETURN cString

*:--------------------------------------------------------------------
*:
*:	Procedure:	xpCreateStringFromCursor
*:
*:--------------------------------------------------------------------
PROCEDURE xpCreateStringFromCursor
*!* создает строку создания таблицы из курсора
LPARAMETERS tcCursor
LOCAL aFld[1], i, lcString
AFIELDS(aFld,tcCursor)

lcString =''
FOR i=1 TO ALEN(aFld,1)
	lcString=lcString+aFld(i,1)+' '+aFld(i,2)
	DO CASE
		CASE aFld(i,2)='N'
			lcString=lcString+'('+LTRIM(STR(aFld(i,3)))+','+LTRIM(STR(aFld(i,4)))+')'
		CASE aFld(i,2)='F'
			lcString=lcString+'('+LTRIM(STR(aFld(i,3)))+','+LTRIM(STR(aFld(i,4)))+')'
		CASE aFld(i,2)='C'
			lcString=lcString+'('+LTRIM(STR(aFld(i,3)))+')'
		CASE aFld(i,2)='V'
			lcString=lcString+'('+LTRIM(STR(aFld(i,3)))+')'
		CASE aFld(i,2)='Q'
			lcString=lcString+'('+LTRIM(STR(aFld(i,3)))+')'
	ENDCASE
	IF ALEN(aFld,1)!=i
		lcString=lcString+', '
	ENDIF
ENDFOR
RETURN lcString
...
Рейтинг: 0 / 0
Регистр в именах полей
    #37783268
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DagСм. справку по командам COPY STRUCTURE, COPY STRUCTURE EXTENDED. Или что-то типа этого
Лучше AFIELDS() + CREATE FROM ARRAY, чтобы не плодить лишних файлов на диске.

Хотя, это не отменяет вопроса AndreTM . А что надо на самом деле? Не выбранный способ решения, а сама постановка задачи какая? Откуда возникла необходимость создавать структуру программно?
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Регистр в именах полей
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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