powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вызов ХП Оракла из ВФП 7,0 (интересный баг???)
10 сообщений из 10, страница 1 из 1
Вызов ХП Оракла из ВФП 7,0 (интересный баг???)
    #33419413
Фотография FM32YO aka KID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть 2 метода вызова ХП оракловой из ВФП

1
*********************************
cSP = "BEGIN fin.FM32YO_Update_Persons_IN_PUT2(1, '0', ?Recordid, ?Sur, ?Nam, ?Fat, " + ;
"?Jobb, ?Posit, ?DPAId, ?Pass, ?Adr, ?InDay, ?OutDay, ?cWhoDidIt); END;"

k = SQLExec(gnConnHandle, cSP)
**********************************
2
********************************
cSP = "{call fin.FM32YO_Update_Persons_IN_PUT2(1, '0', ?Recordid, ?Sur, ?Nam, ?Fat, ?Jobb, ?Posit, ?DPAId, ?Pass, ?Adr, ?InDay, ?OutDay, ?cWhoDidIt)}"

k = SQLExec(gnConnHandle, cSP)
*******************************

Метод 2, при трассировке TOAD-овским SQL Monitor-ом выдавал мне какую-то ошибку..
но отрабатывал несмотря на нее...
ну просто показывало в логе кукаю-то ошибку, а именно:

Timestamp: 12:10:18.901

BEGIN fin.FM32YO_Update_Persons_IN_PUT2;END;

Вот сообщение об ошибке

Oracle error occurred: 6550 (ORA-06550: line , column :)
----------------------------------

а вот ХП-шка выполнилась!!!! без проблем

Timestamp: 12:10:18.963

BEGIN -- proccall
fin.FM32YO_Update_Persons_IN_PUT2(NTODO=>1,CRECORDID=>'0',CPUTNOMER=>:V001 ,
SURNAME=>:V002 ,NAME1=>:V003 ,FATHER=>:V004 ,JOB=>:V005 ,POSITION=>:V006 ,
ID=>:V007 ,PASSPORT=>:V008 ,ADRESS=>:V009 ,STARTDAY=>:V010 ,ENDDAY=>:V011 ,
CWORKER=>:V012 );
END;

:V001 = '69928'
:V002 = 'МЕЗЕВ'
:V003 = 'Маргарета'
:V004 = <NULL>
:V005 = <NULL>
:V006 = <NULL>
:V007 = <NULL>
:V008 = <NULL>
:V009 = <NULL>
:V010 = '02/06/2005'
:V011 = '01/07/2005'
:V012 = '06/12/2005 12:10:16 '
----------------------------------
Timestamp: 12:10:19.197


но ошибка эты никак не влияла на работу процедуры....
ну подумал я и все же перешел на вызов ХП по методу 1
НО!!! теперь заметил чисто методом тыка операторов, что при вводе
анкет, некоторые имена в частном случае "Маргарета" - не срабатывает
ХП-шка методом 1.. просто вылетает, говорит что в 1-й строке ее
ошибка...

Сама ошибка
ORA-06502 PL/SQL: numeric or value error
ORA-06512: at line 1

а 1-я строка ж
CREATE OR REPLACE PROCEDURE FM32YO_Update_Persons_IN_PUT2

Замечу, что подобное происходит НЕ всегда , а только при определенніх
именах что ли... вот только одно имя отследил... но быфло их много...

перешел.. просто попробовать на метод 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.
79.
80.
81.
82.
83.
84.
85.
86.
87.
CREATE OR REPLACE PROCEDURE FM32YO_Update_Persons_IN_PUT2
(nToDo IN NUMBER, cRecordid IN VARCHAR2, cPutNomer IN VARCHAR2, Surname IN VARCHAR2, 
Name1 IN VARCHAR2, Father IN VARCHAR2,
Job IN VARCHAR2, Position IN VARCHAR2, Id IN VARCHAR2, Passport IN VARCHAR2,
Adress IN VARCHAR2, StartDay IN VARCHAR2, EndDay IN VARCHAR2, cWorker IN VARCHAR2)
IS

--------------------------------------------------------------------
--
--  хранимая процедура для редактирования Ф.И.О,
--  паспорта, ИД кода, адреса, места работы, должности, даты
--  в таблице FM32YO_PERSONS_IN_PUT
--
--------------------------------------------------------------------

BEGIN

-- nToDo = 1 INSERTING
-- nToDo = 2 UPDATING
-- nToDo = 0 DELETING

IF nToDo =  1  THEN

	INSERT INTO FIN.FM32YO_PERSONS_IN_PUT2 
		( CODE,
		  cCODEPUTEVKI,
		  cSURNAME,
		  cNAME,
		  cFatNAME,
		  cJob,
		  cPosition,
		  cIDCODE,
		  cPASSPORT,
		  cADRESS,
		  dStartDate,
		  dEndDate,
		  cWhoMadeIt
		)
	VALUES 
		( FIN.FM32YO_PERSONS_IN_PUT_SQ2.NextVal,
		cPutNomer,
		Surname,
		Name1,
		Father,
		Job,
		Position,
		Id,
		Passport,
		Adress,
		TO_DATE(StartDay, 'dd/mm/yyyy'),
		TO_DATE(EndDay, 'dd/mm/yyyy'),
		cWorker
		) ;

END IF ;
IF nToDo =  2  THEN

	UPDATE FIN.FM32YO_PERSONS_IN_PUT2
	SET 
		cSurname = Surname,
		cNAME = Name1,
		cFatNAME = Father,
		cJob = Job,
		cPosition = Position,
		cIDCODE = Id,
		cPASSPORT = Passport,
		cADRESS = Adress,
		dStartDate = TO_DATE(StartDay, 'dd/mm/yyyy'),
		dEndDate = TO_DATE(EndDay, 'dd/mm/yyyy'),
		cWhoMadeIt = cWorker
	WHERE Code = cRecordid ;
END IF ;

IF nToDo =  0  THEN

	DELETE FROM FIN.FM32YO_PERSONS_IN_PUT2
		WHERE Code = cRecordid ;
END IF ;


COMMIT ;

END ;
/



...
Рейтинг: 0 / 0
Вызов ХП Оракла из ВФП 7,0 (интересный баг???)
    #33428695
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi FM32YO aka KID!

> CWORKER=>:V012 );
> :V012 = '06/12/2005 12:10:16 '

А это нормально? Чего-это у тебя cWorker такой странный...
Может не в "Маргарите" дело :) И ещё - там случаем не пересекаются русские и
латинские буковки? Может что-то с кодировкой не то...
P.S. Ну уж коль саму ХП привёл, то и скрипт для создания таблицы приводи, и
полный фоксовый код - в т.ч. присвоение переменных используемых при вызове
ХП.
А ошибка в первой строке - значит собственно при получении параметров и
случилось страшное.

P.P.S. Всегда считал что именно через Call и надо работать, используя
анонимные PL/SQL блоки подобные твоему варианту 1 лишь в крайних случаях :)

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Вызов ХП Оракла из ВФП 7,0 (интересный баг???)
    #33429789
Фотография FM32YO aka KID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ответ!

Igor Korolyov

> CWORKER=>:V012 );
> :V012 = '06/12/2005 12:10:16 '

А это нормально? Чего-это у тебя cWorker такой странный...

да - это нормально... cWorker - это что-то вроде махонького аудита "кто и когда записал данные", аудит собственно туповатый, но другого в данном случае и не требовалось

Igor Korolyov
Может не в "Маргарите" дело :) И ещё - там случаем не пересекаются русские и
латинские буковки? Может что-то с кодировкой не то...

да вот пробовал и так и эдак... и, только при CALL перестало болезненно реагировать на "Маргариту"

Igor Korolyov
P.S. Ну уж коль саму ХП привёл, то и скрипт для создания таблицы приводи, и
полный фоксовый код - в т.ч. присвоение переменных используемых при вызове
ХП.
Скрипт для таблицы:
Код: 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.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
CREATE TABLE FM32YO_PERSONS_IN_PUT2
(
  CODE            VARCHAR2( 10 ) PRIMARY KEY NOT NULL ,
  cCODEPUTEVKI    VARCHAR2( 10 ),
  cSURNAME        VARCHAR2( 50 ),
  cNAME           VARCHAR2( 50 ),
  cFatNAME        VARCHAR2( 50 ),
  cJob		  VARCHAR2( 150 ),
  cPosition	  VARCHAR2( 150 ),
  cIDCODE         VARCHAR2( 10 ),
  cPASSPORT       VARCHAR2( 15 ),
  cADRESS         VARCHAR2( 255 ),
  dStartDate      DATE,
  dEndDate        DATE,
  cWhoMadeIt	  VARCHAR2( 100 )
)

TABLESPACE USER_DATA
PCTUSED     40 
PCTFREE     10 
INITRANS    1 
MAXTRANS    255 
STORAGE    (
            INITIAL          454K
            NEXT             226K
            MINEXTENTS        1 
            MAXEXTENTS        121 
            PCTINCREASE       50 
            FREELISTS         1 
            FREELIST GROUPS   1 
            BUFFER_POOL      DEFAULT
           )
LOGGING 
NOCACHE
NOPARALLEL;

COMMENT ON TABLE FM32YO_PERSONS_IN_PUT2 IS 'таблица Санаторий-путевка-данные про отдыхающего';

COMMENT ON COLUMN FM32YO_PERSONS_IN_PUT2.CODE IS 'PRIMARY KEY - уникальный код';

COMMENT ON COLUMN FM32YO_PERSONS_IN_PUT2.cCODEPUTEVKI IS 'FOREIGH KEY - код путевки';

COMMENT ON COLUMN FM32YO_PERSONS_IN_PUT2.cSURNAME IS 'фамилия';

COMMENT ON COLUMN FM32YO_PERSONS_IN_PUT2.cNAME IS 'имя';

COMMENT ON COLUMN FM32YO_PERSONS_IN_PUT2.cFatNAME IS 'отчество';

COMMENT ON COLUMN FM32YO_PERSONS_IN_PUT2.cIDCODE IS 'идентификационный код';

COMMENT ON COLUMN FM32YO_PERSONS_IN_PUT2.cPASSPORT IS 'номер паспорта';

COMMENT ON COLUMN FM32YO_PERSONS_IN_PUT2.cADRESS IS 'адрес';

COMMENT ON COLUMN FM32YO_PERSONS_IN_PUT2.cJob IS 'место работы';

COMMENT ON COLUMN FM32YO_PERSONS_IN_PUT2.cPosition IS 'должность';

COMMENT ON COLUMN FM32YO_PERSONS_IN_PUT2.dStartDate IS 'реальная дата заезда адрес';

COMMENT ON COLUMN FM32YO_PERSONS_IN_PUT2.dEndDate IS 'реальная дата отъезда';

CREATE INDEX Surname ON FM32YO_PERSONS_IN_PUT2
(cSURNAME)
LOGGING
TABLESPACE USER_DATA
PCTFREE     10 
INITRANS    2 
MAXTRANS    255 
STORAGE    (
            INITIAL          14K
            NEXT             16K
            MINEXTENTS        1 
            MAXEXTENTS        2147483645 
            PCTINCREASE       50 
            FREELISTS         1 
            FREELIST GROUPS   1 
            BUFFER_POOL      DEFAULT
           )
NOPARALLEL;


ALTER TABLE FM32YO_PERSONS_IN_PUT2 ADD (
  FOREIGN KEY (cCODEPUTEVKI) 
    REFERENCES TFV_PASS (CODE_P));

--------------------------------------------------------
-- секвенс для уникального значения в справочнике
-- отдыхающих по конкретной путевке
--------------------------------------------------------

--DROP SEQUENCE FIN.FM32YO_PERSONS_IN_PUT_SQ2 ;

CREATE SEQUENCE FIN.FM32YO_PERSONS_IN_PUT_SQ2
  START WITH  1 
  MAXVALUE  9999999999 
  MINVALUE  1 
  NOCYCLE
  CACHE  20 
  NOORDER;


Фоксовый код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Recordid = THISFORM.nChosenPrimaryId  
Sur = ALLTRIM(UPPER(Thisform.Surn1.Value)) 
Nam = ALLTRIM(Thisform.cName1.Value) 
Fat = ALLTRIM(Thisform.cFname1.Value)  
Jobb = ALLTRIM(Thisform.cJob1.Value)  
Posit = ALLTRIM(Thisform.cPosada1.Value)  
DPAId = ALLTRIM(Thisform.cDpa1.Value)  
Pass = ALLTRIM(Thisform.cPass1.Value)  
Adr = ALLTRIM(Thisform.cAdress1.Value)  
InDay = DTOC(Thisform.Datin1.Value)  
OutDay = DTOC(Thisform.DatOut1.Value)  
cWhoDidIt = TTOC(datetime()) + ' - ' + cWhoIsWorking

*
* cWhoIsWorking у меня = SYS( 0 )
*
&& INSERTING
	
cSP = "{call fin.FM32YO_Update_Persons_IN_PUT2(1, '0', ?Recordid, ?Sur, ?Nam, ?Fat, ?Jobb, ?Posit, ?DPAId, ?Pass, ?Adr, ?InDay, ?OutDay, ?cWhoDidIt)}"  


я вот подумал.. вероятно проблема тут:
Recordid = THISFORM.nChosenPrimaryId
в случае редактирования - все нормально, а в случае инсерта данное значение вероятно есть нонсенс.... хотя может и нет


Igor Korolyov
P.P.S. Всегда считал что именно через Call и надо работать, используя
анонимные PL/SQL блоки подобные твоему варианту 1 лишь в крайних случаях :)
CALL из-за глючного ODBC вызывает ошибку, которая в SQLMonitore показывается, поэтому попробовал с BEGIN начать.. поиграться так сказать.... только в этом причина
...
Рейтинг: 0 / 0
Вызов ХП Оракла из ВФП 7,0 (интересный баг???)
    #33431840
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi FM32YO aka KID!

> да - это нормально... cWorker - это что-то вроде махонького аудита "кто и
> когда записал данные"

Хех, ну так там далее должно быть имя, у меня имя в логе видно - вот я и
удивился, отчего же только дата :)

> да вот пробовал и так и эдак... и, только при CALL перестало болезненно
> реагировать на "Маргариту"

У меня на локальном (8.1.7) что с MS драйвером, что с родным, что в первом
синтаксисе, что во втором - всё работает и ошибок не вызывает... Правда я
опции хранения выкинул из скрипта, ну чтоб не создавать TableSpace-ов
одноимённых твоим и т.п.
А вот то КАК оно работает - тут да, отличия имеются. MS драйвер при
использовании call запрашивает описание процедуры из базы (это не видно в
мониторе, т.к. это идёт уже "после" ODBC драйвера - но видно на самом
сервере). При этом он создаёт в команде вызова все эти "хитрые" имена для
параметров, хотя для работы это и не обязательно - достуточно указания
порядка их следования...

> CALL из-за глючного ODBC вызывает ошибку, которая в SQLMonitore
> показывается

Ну дык вот это то мне и было интересно, но я ошибку так и не наблюдаю - у
меня ODBC "переводит" синтаксис с call в тот самый begin - end... Правда по
разному для разных драйверов, но без ошибок... Хотя возможно это зависит от
того, какие права имеются у юзера под которым идёт коннект...

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Вызов ХП Оракла из ВФП 7,0 (интересный баг???)
    #33432700
Фотография FM32YO aka KID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor Korolyov

Ну дык вот это то мне и было интересно, но я ошибку так и не наблюдаю - у
меня ODBC "переводит" синтаксис с call в тот самый begin - end... Правда по
разному для разных драйверов, но без ошибок... Хотя возможно это зависит от
того, какие права имеются у юзера под которым идёт коннект...




Ну а у меня вот выводит ошибочку. Но, Слава Богу ошиюбка эта никак не влияет на работу, если бы ты мне в свое время не указал на SQL Monitor - я бы ее никогда и не увидел :-)

вот еще раз проверил вот она ошибка, хотя после нее идет нормальная хп...

Код: 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.
Timestamp:  11 : 32 : 21 . 703 

BEGIN fin.FM32YO_Update_Persons_IN_PUT2;END;

[color=red]Oracle error occurred:  [b]6550  (ORA- 06550 : line , column :)[/color][/b]
----------------------------------
Timestamp:  11 : 32 : 22 . 000 

BEGIN -- proccall
fin.FM32YO_Update_Persons_IN_PUT2(NTODO=> 1 ,CRECORDID=>'0',CPUTNOMER=>:V001 ,
SURNAME=>:V002 ,NAME1=>:V003 ,FATHER=>:V004 ,JOB=>:V005 ,POSITION=>:V006 ,
ID=>:V007 ,PASSPORT=>:V008 ,ADRESS=>:V009 ,STARTDAY=>:V010 ,ENDDAY=>:V011 ,
CWORKER=>:V012 );
END;

:V001 = '69883'
:V002 = 'Фамилия'
:V003 = 'Имя'
:V004 = отчество'
:V005 = 'работа'
:V006 = 'должность'
:V007 = код'
:V008 = 'паспорт'
:V009 = 'адрес'
:V010 = '01/01/2005'
:V011 = '01/02/2005'
:V012 = '13/12/2005 11:32:20 - W2K-2102 # User'
----------------------------------
Timestamp:  11 : 32 : 22 . 171 
...
Рейтинг: 0 / 0
Вызов ХП Оракла из ВФП 7,0 (интересный баг???)
    #33434467
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi FM32YO aka KID!

Т.е. он сначала пытается вызвать ХП без параметров? Странно это... Какие
права имеет тот аккаунт под которым ты работаешь? Не используешь ли часом
SQLPREPARE()?
Вообще на стороне сервера тоже есть трассировщик, я просто не в курсе как им
пользоваться :( Можно посмотреть что доходит в итоге до сервера...

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Вызов ХП Оракла из ВФП 7,0 (интересный баг???)
    #33434867
Фотография FM32YO aka KID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor Korolyov
Hi FM32YO aka KID!
Какие
права имеет тот аккаунт под которым ты работаешь?


Под аккаунтом ты имеешь в виду того юзера, при помощи которого я вхожу в БД оракла? права я ему не давал.. ибо создал таблицы и Хп в уже готовой схеме и хожу под тем же юзером, который там изначально был. Так что думаю права у него как у владельца объектов.
Это только сейчас начал пробовать писать со своим юзером

Igor Korolyov
Не используешь ли часом
SQLPREPARE()?

нет

Ну, собственно программа работает и хрен с ней так как это просто маленькое дополнение в централизованной разработке, сделанное по просьбе коллег.
проще самому было написать - чем просить официально разработчика, обосновывая потребность
...
Рейтинг: 0 / 0
Вызов ХП Оракла из ВФП 7,0 (интересный баг???)
    #33436955
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi FM32YO aka KID!

> Под аккаунтом ты имеешь в виду того юзера, при помощи которого я вхожу в
> БД оракла?

Да, того который в DSN прописан или в строке коннекта. Важно то, какие роли
ему назначены - может ODBC не может достучаться до стандартных системных
процедур "описания параметров ХП" - от того и "пробует" её таким странным
способом... Хотя тогда он наверное не смог бы вынуть имена параметров, что
как мы видим ему удалось...
В общем пока не ясно что там внутри ODBC происходит. и зачем она выполняет
этот "фиктивный" предварительный вызов ХП...

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Вызов ХП Оракла из ВФП 7,0 (интересный баг???)
    #33437752
Фотография FM32YO aka KID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor Korolyov
Да, того который в DSN прописан или в строке коннекта. Важно то, какие роли
ему назначены -

он есть "владелец" всех таблиц, с которыми данная программа работает, и так же "владелец" ХП-шки.. то есть я ему не давал особых прав, так как владелец имеет права на работу со своими объектами?
а самого юзера создавал не я.. он годами есть.. я просто в него "воткнул" таблицу + сиквенс + ХП
...
Рейтинг: 0 / 0
Вызов ХП Оракла из ВФП 7,0 (интересный баг???)
    #33439562
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi FM32YO aka KID!

Не ты не понял... Я не про права на саму таблицу и на твою ХП, я про права
на СИСТЕМНУЮ ХП - ту которая "описывает" все параметры для твоей ХП -
SYS.DBMS_DESCRIBE.DESCRIBE_PROCEDURE()
Уж не знаю почему, но именно её у меня вызывает MS драйвер при использовании
синтаксиса {call }
При использовании синтаксиса begin ... end; - данная ХП не вызывается. Также
она не вызывается при использовании Oracle ODBC Driver (с любым
синтаксисом).
Я кстати нашёл где хранится серверный лог (обычно это папка udump - но
точнее смотри параметр user_dump_dest в init.ora - конечно она находится на
сервере), и как его включать в TOAD (в Session Browser просто выбрать
интересующую сессию и из контекстного меню Start trace - ну или
соответствующей кнопкой на панели). В общем как говорится читайте мануалы -
они рулез :)
Лог правда своеобразный (оно и понятно - сервер свои статистические
параметры туда выводит), но кое чего из него почерпнуть можно - главное, что
это не то что фокс шлёт ODBC драйверу (именно это ловит SQL Monitor) - а это
то что ODBC драйвер шлёт самому серверу.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вызов ХП Оракла из ВФП 7,0 (интересный баг???)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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