Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / как при выборке заменить .NULL на "" (пустоту/пробелы) / 25 сообщений из 58, страница 1 из 3
20.07.2006, 19:20
    #33868255
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как при выборке заменить .NULL на "" (пустоту/пробелы)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT ;
    CaseCategories.name as CaseCategName,;
    CaseReturnReasons.name as ReturnReason,;
    ExecDepExecMail.recid,;
    ExecDepExecMail.Letter_n,;
    ExecDepExecMail.Date_out,;
    ExecDepExecMail.ReturnCode;
    FROM ExecDepExecMail;
    LEFT JOIN CaseReturnReasons ON ExecDepExecMail.ReturnCode=CaseReturnReasons.code;
    LEFT JOIN CaseCategories ON ExecDepExecMail.CategCode=CaseCategories.code;
    INTO CURSOR curExecMail ;
    ORDER BY ExecDepExecMail.Letter_n, ExecDepExecMail.Date_out;
    READWRITE 
оно в поле ReturnReason лупит .NULL когда ExecDepExecMail.ReturnCode=0, а такого кода в CaseReturnReasons нету. Или че - все риплейсами забивать?
...
Рейтинг: 0 / 0
20.07.2006, 19:55
    #33868316
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как при выборке заменить .NULL на "" (пустоту/пробелы)
nvl(CaseReturnReasons.name,'')
...
Рейтинг: 0 / 0
20.07.2006, 19:59
    #33868323
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как при выборке заменить .NULL на "" (пустоту/пробелы)
классы начнем изучать???
...
Рейтинг: 0 / 0
20.07.2006, 20:02
    #33868330
Cyv
Cyv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как при выборке заменить .NULL на "" (пустоту/пробелы)
Код: plaintext
nvl(CaseReturnReasons.name,'')
А размерность? Наверное лучше бы
Код: plaintext
NVL(CaseReturnReasons.name,SPACE(размер поля name))
...
Рейтинг: 0 / 0
20.07.2006, 20:06
    #33868338
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как при выборке заменить .NULL на "" (пустоту/пробелы)
сенкс, о такой функции я не знал

классы изучать - будем АбязатИльнА :)
я твой пост читал - думаю вот что лучше будет - уйти в мыло или тут продолжить?
...
Рейтинг: 0 / 0
20.07.2006, 20:47
    #33868400
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как при выборке заменить .NULL на "" (пустоту/пробелы)
давай тута

так интересней
и мне руку набить нужно

мне понять нужно как объяснять
и что в этом непонятного
...
Рейтинг: 0 / 0
21.07.2006, 12:17
    #33869561
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как при выборке заменить .NULL на "" (пустоту/пробелы)
ОК.
будем здеся. наверняка кому-то еще будет полезно...
или мож нарисуем топик -Шо такое этот класс?-
заодно другие подтянуцца
...
Рейтинг: 0 / 0
21.07.2006, 12:21
    #33869579
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как при выборке заменить .NULL на "" (пустоту/пробелы)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SELECT ;
    NVL(CaseReturnReasons.name,SPACE( 20 )) as CaseCategName,;
    CaseReturnReasons.name ReturnReason,;
    ExecDepExecMail.recid,;
    ExecDepExecMail.Letter_n,;
    ExecDepExecMail.Date_out,;
    ExecDepExecMail.date_in,;
    ExecDepExecMail.CategCode,;
    ExecDepExecMail.Executed,;
    IIF(ExecDepExecMail.Executed,"ага","неа") as ExecutedName,;
    ExecDepExecMail.ReturnCode;
    FROM ExecDepExecMail; 
    LEFT JOIN CaseReturnReasons ON ExecDepExecMail.ReturnCode=CaseReturnReasons.code;
    LEFT JOIN CaseCategories ON ExecDepExecMail.CategCode=CaseCategories.code;
    INTO CURSOR curExecMail ;
    ORDER BY ExecDepExecMail.Letter_n, ExecDepExecMail.Date_out;
    READWRITE 

не катит, сиравно нулл и все тут!
...
Рейтинг: 0 / 0
21.07.2006, 12:24
    #33869600
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как при выборке заменить .NULL на "" (пустоту/пробелы)
извиняюсь, лоханулся как обычно
все работает!!!
СПАСИБЫ!!!
...
Рейтинг: 0 / 0
21.07.2006, 12:30
    #33869619
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как при выборке заменить .NULL на "" (пустоту/пробелы)
ну мне данные нужны и знать, что ты хочешь выбрать
я так не МАГУ

ну тады так еще ему
update curExecMail set ReturnReason=nvl(ReturnReason,'')


ну внеси в CaseReturnReasons
запись с 0 = "Ошибка"

или добавь условие !empt(ExecDepExecMail.ReturnCode)
...
Рейтинг: 0 / 0
21.07.2006, 13:13
    #33869843
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как при выборке заменить .NULL на "" (пустоту/пробелы)
да все окейно ужо. я ж в запостщенном примере не туды фукцию впарил :) а потом, правда так и оставил, на всяк пож, но и куды нада тоже прикрутил.

Дык что с классами? создаем топик или там продолжим или тут? ты, кстати, начал с того что вот представь что есть базовые классы. с этим проблема - я не могу представить себе что это. вот объект - это понятно, а что есть класс? это набор свойств для объектов или что?
...
Рейтинг: 0 / 0
21.07.2006, 13:54
    #33870033
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как при выборке заменить .NULL на "" (пустоту/пробелы)
короче
продолжаем тута


вот смотри
в лисе можно по-всякому

можно тупо код писать
можно даже руками окна взметать
можно формы рисовать

т.е. несколько способов

но рано или поздно это надоедает
во-первых долго
во-вторых нудно
в-третьих, ну не то это

вот смотри
ты создаешь форму
кладешь на нее кнопку и текстбокс

все понятно - тебе нравится
и ты будешь создавать десять таких форм отличающихся
количеством, набором этих кнопочек, лэйблов, текстбоксов
их положением на форме ....

а вот с классами ...
это подход с другого бока ....

почитай, задай вопросы
...
Рейтинг: 0 / 0
21.07.2006, 14:00
    #33870055
Кузнецов Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как при выборке заменить .NULL на "" (пустоту/пробелы)
На тему классов.
Я когда еще только-только приступил в визуальному программирования тоже не мог воспринять понятие класса. Я конечно прочитал, что это набор свойств, методов, событий, но все равно было не понятно. И только через некоторое время я придумал для себя аналогию.
Представь себе машиностроение. И как там изготавливают детали методом литья. Берут форму, наливают в нее расплавленный метал, когда остынет - вытряхают. Заливают следующую порцию. Так вот форму для заливки можно уподобить классу в программировании, а созданный на её основе объект - это полученная деталь. Деталь получает точно такие же впуклости и выпуклости (свойства и методы), так и литейная форма, её породившая. После на этой детали можно дополнительно дырок насверлить или шильдик прикрутить (добавить\убрать лишние объекты например), а на другой детали из той же литейной формы зубилом чего-нибудь высечь!
-------------------------------------------------
Я понимаю, что я что-то не понимаю, но вот что я не понимаю, я пока не понимаю.
...
Рейтинг: 0 / 0
21.07.2006, 14:05
    #33870095
AKI
AKI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как при выборке заменить .NULL на "" (пустоту/пробелы)
alex11100
вот смотри
ты создаешь форму
кладешь на нее кнопку и текстбокс

все понятно - тебе нравится
и ты будешь создавать десять таких форм отличающихся
количеством, набором этих кнопочек, лэйблов, текстбоксов
их положением на форме ....


недопонял.. с формой и кнопкой = ясно..
в случае класса
для формы с 1-м объектом а-ля гиперлинк (ну не важно что)
пишу

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
DEFINE CLASS frmwlistbox1 AS frmwlistbox

	DoCreate = .T.
	Caption = "Íîìåðè êâ."
	Name = "Frmwlistbox1"

	ADD OBJECT hyperlinklabel1 AS hyperlinklabel WITH ;
		Caption = "Âèáðàòè", ;
		Left =  24 , ;
		Top =  202 , ;
		Name = "Hyperlinklabel1"

ENDDEFINE

теперь мне нужно такое же тно с 2-мя такими объектами пишу:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
DEFINE CLASS frmwlistbox1 AS frmwlistbox

	DoCreate = .T.
	Caption = "Íîìåðè êâ."
	Name = "Frmwlistbox1"

	ADD OBJECT hyperlinklabel1 AS hyperlinklabel WITH ;
		Caption = "Âèáðàòè", ;
		Left =  24 , ;
		Top =  202 , ;
		Name = "Hyperlinklabel1"

	ADD OBJECT hyperlinklabel2 AS hyperlinklabel WITH ;
		Caption = "Âèáðàòè", ;
		Left =  124 , ;
		Top =  500 , ;
		Name = "Hyperlinklabel2"

ENDDEFINE

ну и так далее... так тут два варианта
1 - я неверно понимаю, и буду благодарен коль Вы поясните..
2 - разница только в подходе - формы - класс-файлы...
...
Рейтинг: 0 / 0
21.07.2006, 14:16
    #33870140
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как при выборке заменить .NULL на "" (пустоту/пробелы)
так, стоять, руки в гору

будем разговаривать про
визуальные классы

нельзя класс понять через написание его
в прг, ты никогда не поймешь, что классы можно создать и нужно
создать как матрешку, один в одном и другого погоняет ...


нужно понимать сущность
представлять класс как яблоко, которое лежит на руке


начнем изучать визуальные
и начнем писать правильно
созданием визуальной библиотеки и визуальных классов
...
Рейтинг: 0 / 0
21.07.2006, 14:21
    #33870166
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как при выборке заменить .NULL на "" (пустоту/пробелы)
создание библиотеки классов
позволяет создать набор
сущностей - объектов, которые будут
наделены своими свойствами и методами
(иными, не такими, как у базового набора лисы)

и когда этот набор классов
разрастается
управлять им можно только с помощью визуальных средств
понимать такой класс можно, только видя его, представляя его
...
Рейтинг: 0 / 0
21.07.2006, 14:23
    #33870179
AKI
AKI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как при выборке заменить .NULL на "" (пустоту/пробелы)
alex11100так, стоять, руки в гору

будем разговаривать про
визуальные классы

нельзя класс понять через написание его
в прг, ты никогда не поймешь, что классы можно создать и нужно
создать как матрешку, один в одном и другого погоняет ...


нужно понимать сущность
представлять класс как яблоко, которое лежит на руке


начнем изучать визуальные
и начнем писать правильно
созданием визуальной библиотеки и визуальных классов

1 - для моего примера стало быть разницы нету?
2 - сам пробую визуальные, например класс коннекта к серверу Бд, с методом "Случилась ошибка", "веполнить заврос.." ну и так далее....

вот например:
Код: 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.
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.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
DEFINE CLASS pgsqlconnector AS custom

	odbcdriver = ""
	serverip = ""
	*-- Specifies the path to the database that contains the table or view associated with the Cursor object.
	database = ""
	dbuser = ""
	userpassword = ""
	spresult =  0 
	csqlstring = ""
	Name = "pgsqlconnector"


	PROCEDURE connector
		nConnHandle =  0 

		lcDSNLess="DRIVER=" + This.odbcdriver + ";" ; 
		+ "SERVER=" + this.serverip + ";" ;
		+ "UID=" + this.dbuser + ";" ;
		+ "PWD=" + this.userpassword + ";" ;
		+ "DATABASE=" + this.database
		** + "'"

		***WAIT WINDOW lcDSNLess
		nConnHandle = sqlstringconnect(m.lcDSNLess)

		IF nConnHandle <= 0
			this.con2postgresqlerror()
		ENDIF
		 
	ENDPROC


	PROCEDURE con2postgresqlerror
		=AERROR(lAerror)

		DO CASE
			CASE 'is not present in table' $ ALLTRIM(lAerror(3))
				DO FORM MEssager2.scx WITH 'У В А Г А   П О М И Л К А ! ! !', ;
						'Записати дані неможливо !', 'Ви заповнили не всі поля'
			CASE lAerror(4) = '23505'
				DO FORM MEssager2.scx WITH 'У В А Г А   П О М И Л К А ! ! !', ;
						'Унікальність порушено', 'Такий запис вже існує'
			CASE 'invalid input syntax for type date' $ ALLTRIM(lAerror(3))
				DO FORM MEssager2.scx WITH 'У В А Г А   П О М И Л К А ! ! !', ;
						'Записати дані неможливо !', 'Поля з датами повинні бути заповнені'


		*	CASE lAerror(5) = 7 && Unique constraint violation
		*		DO FORM MEssager2.scx WITH 'У В А Г А   П О М И Л К А ! ! !', ;
		*				'Такий запис вже', 'існує'
		*	CASE lAerror(5) = 113
		*		DO FORM MEssager.scx WITH 'Помилково введено користувача або пароль'

		OTHERWISE

		= MESSAGEBOX('Не можу отримати дані з бази' + CHR(13) + ;
		'Опис: [' + ALLTRIM(lAerror(2)) + ']'  + CHR(13) + ;
		'ODBC ErrorMessage: ' + ALLTRIM(lAerror(3))  + CHR(13) + ;
		'ODBC SQL state: '  + ALLTRIM(lAerror(4))  + CHR(13) + ;
		'The error № from the ODBC data source: ' + TRANSFORM(lAerror(5))  + CHR(13) + ;
		'The ODBC connection handle: ' + TRANSFORM(lAerror(6)), 16, ;
		'ПОМИЛКА SQL Connect № ' + TRANSFORM(lAerror( 1 )))
		 

		ENDCASE
		 
	ENDPROC


	PROCEDURE spexecute
		PARAMETERS cSqlstr, cCursorName

		this.spresult = SQLExec(nConnHandle, cSqlstr, cCursorName)
	ENDPROC


ENDDEFINE

но так и не понял - чем мне это поможет в случае массы форм, с разным количеством кнопок?

Да, конечно в той же библе класов у меня есть к примеру типовая форма, с гридом кнопкой выйти-добавить-удалить-редактировать....

Если мне нужна другая такая форма - я делаю ее на основе класса первой + добавляю пару кнопок... но как итог.. все равно ниче не понял.. да и класс формы - это не визуальный класс...
...
Рейтинг: 0 / 0
21.07.2006, 14:26
    #33870188
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как при выборке заменить .NULL на "" (пустоту/пробелы)
а чтож это такое

короче начинаем промывку мозгов


мы сейчас договариваемся
мы забываем про команды
create form
do form

и посмотрим, что из этого получится

начнем?
...
Рейтинг: 0 / 0
21.07.2006, 14:29
    #33870198
AKI
AKI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как при выборке заменить .NULL на "" (пустоту/пробелы)
alex11100а чтож это такое

короче начинаем промывку мозгов


мы сейчас договариваемся
мы забываем про команды
create form
do form

и посмотрим, что из этого получится

начнем?

не так давно, некто alex11100 в некоем топике
писал "я уже забыл как пишется do form, все на классах делаю..."

Неужто я ощибся в цитате?
...
Рейтинг: 0 / 0
21.07.2006, 14:31
    #33870208
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как при выборке заменить .NULL на "" (пустоту/пробелы)
за деньги, которые на работе do form пишу, но коробит
а для души классами пишу

ну и я сейчас пытаюсь показать это
...
Рейтинг: 0 / 0
21.07.2006, 14:34
    #33870215
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как при выборке заменить .NULL на "" (пустоту/пробелы)
простой плоский код не дает возможности понять
сущность

у него нет объема

подход с написанием визуальных классов более предпочтителен,
так как более нагляден, удобен и быстр
...
Рейтинг: 0 / 0
21.07.2006, 14:38
    #33870229
AKI
AKI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как при выборке заменить .NULL на "" (пустоту/пробелы)
alex11100
подход с написанием визуальных классов более предпочтителен,
так как более нагляден, удобен и быстр


нет конкретики
...
Рейтинг: 0 / 0
21.07.2006, 14:42
    #33870240
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как при выборке заменить .NULL на "" (пустоту/пробелы)
нет конкретики

не понял, начинаем писать пример или нет???
...
Рейтинг: 0 / 0
21.07.2006, 14:45
    #33870256
AKI
AKI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как при выборке заменить .NULL на "" (пустоту/пробелы)
alex11100не понял, начинаем писать пример или нет???

точно не понял.. от меня уже три примера, от Вас ни одного.... о чем Вы только что сказали?
...
Рейтинг: 0 / 0
21.07.2006, 14:51
    #33870294
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как при выборке заменить .NULL на "" (пустоту/пробелы)
вот сразу по-сложному

хотелось разжувать вначале

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


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