|
|
|
Подключение к БД
|
|||
|---|---|---|---|
|
#18+
Расскажите пожалуйста как подключить базу на SQL Server 2000 к PB используя реестр и ini файлы У меня есть информация из учебника о подключении к Access, но и там я не все поняла(???) Создание пользовательских стандартных классов. 1. Создайте пользовательский класс Standard Class типа Transaction. Это будет базовый класс транзакций с дополнительными функциями, которые позволят пользователю выполнять основные операции при работе с базой данных: подключение и отключение от базы данных. Имена объекта и функций указаны в скрипте. // Функция к базовому пользовательскому классу // of_connect for n_trn_base /* C помощью dbhandle() проверить, подключена ли база данных */ If this.dbhandle() > 0 then Return -1 End If CONNECT USING this; If this. SQLCode <> 0 Then Messagebox (" Присоединение к базе данных.", & "Невозможно подсоединиться к Б/Д. " + & "~r~nDBParm: " + this. DBParm + & "~r~nКод ошибки: " + String (this.SQLDBCode ) + & "~r~n" +"Б/Д Сообщение об ошибке: " + this. SQLErrText, & StopSign!, OK!, 1) End If Return this.SQLCode // Функция к базовому пользовательскому классу // of_disconnect for n_trn_base /* C помощью dbhandle() проверить, подключена ли база данных */ If this.dbhandle() > 0 then DISCONNECT USING this; If sqlca. SQLCode <> 0 Then Messagebox (" Отсоединение от базы данных.", & "Невозможно отсоединиться от Б/Д. " + & "~r~nDBParm: " + this. DBParm + & "~r~nКод ошибки Б/Д: " + String(sqlca. SQLDBCode) + & "~r~n" +"Б/Д Сообщение об ошибке: " + sqlca. SQLErrText, & StopSign!, OK!, 1) End If Return sqlca.SQLCode Else Return -1 End If 2. Создайте наследника вновь созданного класса для работы с базами данных, управляемых СУБД Access, с именем n_trn_access. Опишите в классе наследнике следующие объектные переменные: String sysdir, curdir и локальные внешние функции (Local External Functions ) function long GetSystemDirectory(ref string a_sysdir,long l_dir) & library "kernel32.dll" alias for "GetSystemDirectoryA(это менять надо - ???)" function long GetCurrentDirectory(long l_dir,ref string a_curdir) & library "kernel32.dll" alias for "GetCurrentDirectoryA" 3. Создайте функцию, которая построит источник данных, в качестве параметра функции задается имя INI-файла. //public function boolean create_dsn (string as_ INI); String syskey, ls_NameDataSource, ls_DBFile long err = 0 sysdir = Space(255) curdir = Space(255) GetSystemDirectory(sysdir, 255) // получить системный директорий GetCurrentDirectory(255,curdir) // получить текущий директорий ls_DBFile = ProfileString(as_INI,"Data Source(это имя сервера ???)","DB (это имя базы ???)","1" ) curdir += '\' + ls_DBFile sysdir += '\odbcjt32.dll' ls_NameDataSource = ProfileString(as_INI,"Data Source","DataBase","1" ) syskey = 'HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\' + & ls_NameDataSource err += RegistrySet ( syskey, 'DBQ', RegString!, curdir ) err += RegistrySet ( syskey, 'Driver', RegString!, sysdir ) err += RegistrySet ( syskey, 'DriverId', RegULong!, 25 ) err += RegistrySet ( syskey, 'FIL', RegString!, 'MS Access;') err += RegistrySet ( syskey, 'Safe Transactions', RegULong!, 0 ) err += RegistrySet ( syskey, 'UID', RegExpandString!, '') syskey = 'HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources' err += RegistrySet ( syskey, ls_NameDataSource, RegString!, & 'Driver do Microsoft Access (*.mdb)' ) (что написать тут ???) if err <> 7 then (почему <>7 ???) return false else return true end if 4. В объекте наследнике переопределите функцию of_connect: //public function integer of_connect (string as_ INI); string ls_NameDataBase SQLCA.DBMS = "ODBC" SQLCA.AutoCommit = False // Для совместной работы с Б/Д ls_NameDataBase = ProfileString(as_INI,"Data Source","DataBase","1" ) SQLCA.DBParm = "ConnectString=DSN="+ ls_NameDataBase+ " ' " If this.dbhandle() > 0 then Return -1 End If CONNECT USING this; If this. SQLCode <> 0 Then // Если произошла ошибка при подсоединении к Б/Д IF this. SQLdbCode = 999 THEN // Если не найден источник данных create_dsn (as_ INI) // Создать источник данных of_connect(as_ INI) // Еще раз подсоединиться к Б/Д ELSE Messagebox (" Присоединение к базе данных.", & "Невозможно подсоединиться к Б/Д. " + & "~r~nКод ошибки: " + String (this.SQLDBCode ) + & "~r~nСообщение об ошибке: " + this. SQLErrText, & StopSign!, OK!, 1) END IF End If Return this.SQLCode 5. В своем приложении измените свойство SQLCA (нажать кнопку «Additional Properties» на вкладке General свойств приложения, выбрать в окне Application вкладку Variable Types), значение которого должно соответствовать имени, созданного Вами класса транзакций. 6. В событи open приложения вызовите функцию of_connect Вашего объекта транзакций вместо SQL-оператора, а в событии close вызовите функцию of_disconnect. 7. В сценарии к событию Open приложения измените значения свойств подключения к базе данных переменной SQLCA. Значения необходимо взять из Вашего файла параметров. Для этого проделайте следующее: Создайте текстовый файл в любом подходящем редакторе, например, «Блокноте» и сохраните его под любым именем, но обязательно с расширением INI. Пример подобного файла: (что мне написать ???) [Data Source] DataBase = GIG_Access_enterprises DB = курсовик1 Скопируйте всю секцию в файл с именем соответствующим вашему приложению, и расширением INI (какую секцию ???). Внимательно прочтите его и измените, так чтобы информация подходила к созданным Вами функциям. Формат функции ProfileString следующий: Profile String (“<имя файла>.INI,” “<имя секции>”, “<имя свойства переменной транзакции, которому присваивается значение >”,”<>значение по умолчанию”) НАПРИМЕР: sqlca. DBMS = ProfileString(“PB.INI”,”Example_SqlServer”,”DBMS,”” ) Задание 1. Используя материал предыдущих лекций, добавить в приложение обработку ошибок при вызове функций для работы с данными (retrieve, update, delete, и др.). Изменения должны быть сделаны в базовом элементе управления DataWindow. ПОМОГИТЕ ПОЖАЛУЙСТА ЛЮДИ ДОБРЫЕ, ЗАРАНЕЕ СПАСИБО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2006, 17:29 |
|
||
|
Подключение к БД
|
|||
|---|---|---|---|
|
#18+
HEEELP ME wrote: > Расскажите пожалуйста как подключить базу на SQL Server 2000 к PB > используя реестр и ini файлы > У меня есть информация из учебника о подключении к Access, но и там я не > все поняла(???) Вот и читай до просветления. Не люблю ленивых студентов. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2006, 17:56 |
|
||
|
Подключение к БД
|
|||
|---|---|---|---|
|
#18+
Dim2000 HEEELP ME wrote: > Расскажите пожалуйста как подключить базу на SQL Server 2000 к PB > используя реестр и ini файлы > У меня есть информация из учебника о подключении к Access, но и там я не > все поняла(???) Вот и читай до просветления. Не люблю ленивых студентов. Posted via ActualForum NNTP Server 1.3 Так другой информации у меня больше нету. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2006, 18:01 |
|
||
|
Подключение к БД
|
|||
|---|---|---|---|
|
#18+
Мне не понятно только там где вопросы стоят, помогите пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2006, 18:02 |
|
||
|
Подключение к БД
|
|||
|---|---|---|---|
|
#18+
HEEELP MEМне не понятно только там где вопросы стоят, помогите пожалуйста. на все эти вопросы есть ответы в help'e PowerBuilder'a (вызывается нажатием F1) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2006, 18:08 |
|
||
|
Подключение к БД
|
|||
|---|---|---|---|
|
#18+
alexis glinski HEEELP MEМне не понятно только там где вопросы стоят, помогите пожалуйста. на все эти вопросы есть ответы в help'e PowerBuilder'a (вызывается нажатием F1) Ну хорошо, а что же писать в ini файле? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2006, 18:15 |
|
||
|
Подключение к БД
|
|||
|---|---|---|---|
|
#18+
//*--------------------------------------------------------*/ //* The source of connection information can be changed by //* altering the value of the 'is_connectfrom' variable. //*--------------------------------------------------------*/ Choose Case is_connectfrom Case IS_USE_INIFILE /* Populate Database Connection from INI file */ string ls_inifile = "" as_dbms = ProfileString ( ls_inifile, "Database", "DBMS", "OLE DB") as_database = ProfileString ( ls_inifile, "Database", "Database", "") as_userid = ProfileString ( ls_inifile, "Database", "UserID", "") as_dbpass = ProfileString ( ls_inifile, "Database", "DBPass", "") as_logid = ProfileString ( ls_inifile, "Database", "LogID", "") as_logpass = ProfileString ( ls_inifile, "Database", "LogPassword", "") as_server = ProfileString ( ls_inifile, "Database", "Servername", "") as_dbparm = ProfileString ( ls_inifile, "Database", "DBParm", "DATASOURCE='sr',PROVIDERSTRING='Database=Dbname',PBCatalogOwner='dbo',PROVIDER='SQLOLEDB',INIT_PROMPT='DBPROMPT_COMPLETE'") as_lock = ProfileString ( ls_inifile, "Database", "Lock", "") as_autocommit = ProfileString ( ls_inifile, "Database", "AutoCommit", "false") Case IS_USE_REGISTRY /* Populate Database Connection from Registry */ string ls_registrykey = "" + "\DataBase" If RegistryGet ( ls_registrykey, "DBMS", RegString!, as_dbms ) <> 1 Then RegistrySet ( ls_registrykey, "DBMS", RegString!, "OLE DB" ) RegistryGet ( ls_registrykey, "DBMS", RegString!, as_dbms ) End If If RegistryGet ( ls_registrykey, "Database", RegString!, as_database ) <> 1 Then RegistrySet ( ls_registrykey, "Database", RegString!, "" ) RegistryGet ( ls_registrykey, "Database", RegString!, as_database ) End If If RegistryGet ( ls_registrykey, "UserID", RegString!, as_userid ) <> 1 Then RegistrySet ( ls_registrykey, "UserID", RegString!, "" ) RegistryGet ( ls_registrykey, "UserID", RegString!, as_userid ) End If If RegistryGet ( ls_registrykey, "DBPass", RegString!, as_dbpass ) <> 1 Then RegistrySet ( ls_registrykey, "DBPass", RegString!, "" ) RegistryGet ( ls_registrykey, "DBPass", RegString!, as_dbpass ) End If If RegistryGet ( ls_registrykey, "LogID", RegString!, as_logid ) <> 1 Then RegistrySet ( ls_registrykey, "LogID", RegString!, "" ) RegistryGet ( ls_registrykey, "LogID", RegString!, as_logid ) End If If RegistryGet ( ls_registrykey, "LogPassword", RegString!, as_logpass ) <> 1 Then RegistrySet ( ls_registrykey, "LogPassword", RegString!, "" ) RegistryGet ( ls_registrykey, "LogPassword", RegString!, as_logpass ) End If If RegistryGet ( ls_registrykey, "Servername", RegString!, as_server ) <> 1 Then RegistrySet ( ls_registrykey, "Servername", RegString!, "" ) RegistryGet ( ls_registrykey, "Servername", RegString!, as_server ) End If If RegistryGet ( ls_registrykey, "DBParm", RegString!, as_dbparm ) <> 1 Then RegistrySet ( ls_registrykey, "DBParm", RegString!, "DATASOURCE='sr',PROVIDERSTRING='Database=dbname',PBCatalogOwner='dbo',PROVIDER='SQLOLEDB',INIT_PROMPT='DBPROMPT_COMPLETE'" ) RegistryGet ( ls_registrykey, "DBParm", RegString!, as_dbparm ) End If If RegistryGet ( ls_registrykey, "Lock", RegString!, as_lock ) <> 1 Then RegistrySet ( ls_registrykey, "Lock", RegString!, "" ) RegistryGet ( ls_registrykey, "Lock", RegString!, as_lock ) End If If RegistryGet ( ls_registrykey, "AutoCommit", RegString!, as_autocommit ) <> 1 Then RegistrySet ( ls_registrykey, "AutoCommit", RegString!, "false" ) RegistryGet ( ls_registrykey, "AutoCommit", RegString!, as_autocommit ) End If Case IS_USE_SCRIPT /* Populate Database Connection from Script */ as_dbms = "OLE DB" as_database = "Dbname" as_userid = "u1" as_dbpass = "p1" as_logid = "u1" as_logpass = "p1" as_server = "sr" as_dbparm = "DATASOURCE='sr',PROVIDERSTRING='Database=Dbname',PBCatalogOwner='dbo',PROVIDER='SQLOLEDB',INIT_PROMPT='DBPROMPT_NOPROMPT'" as_lock = "RU" as_autocommit = "TRUE" Case Else Return -1 End Choose Return 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2006, 18:20 |
|
||
|
Подключение к БД
|
|||
|---|---|---|---|
|
#18+
ОГРОМНОЕ СПАСИИИБО МЫКОЛА Хоть один добродушный и понимающий человек нашелся!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2006, 18:31 |
|
||
|
Подключение к БД
|
|||
|---|---|---|---|
|
#18+
HEEELP MElibrary "kernel32.dll" alias for "GetSystemDirectoryA(это менять надо - ???)" Не ясна суть вопроса. HEEELP MEls_DBFile = ProfileString(as_INI,"Data Source(это имя сервера ???)","DB (это имя базы ???)","1" ) Нет, это название секции и ключа в ini-файле типа Код: plaintext 1. Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2006, 18:36 |
|
||
|
Подключение к БД
|
|||
|---|---|---|---|
|
#18+
т.е. через OLE DB. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2006, 18:37 |
|
||
|
Подключение к БД
|
|||
|---|---|---|---|
|
#18+
Локшин Маркт.е. через OLE DB. Спасибо конечно, но мне просто через ODBC надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2006, 09:47 |
|
||
|
Подключение к БД
|
|||
|---|---|---|---|
|
#18+
Dim2000Вот и читай до просветления. Не люблю ленивых студентов. Согласен... HEEELP MEТак другой информации у меня больше нету. Да что Вы говорите?! А интернет у Вас есть? Если нет, то непонятно как Вы здесь оказались. А если есть, то куда же с него информация то подевалась??? Если не умеете читать хелпы, то учитесь пользоваться поисковиками и поиском по форуму. А так же просто внимательно читать что вообще кроме собщений на форуме есть, в тоом числе и в меню. Например, - FAQ . Там специально, и для Вас в том числе, люди выкладывают и примеры кода, и решений, и ссылки на документацию... --- С уважением, IKAR IkarHomeCenter Портал рускоязычной группы пользователей Sybase Портал детских фотографий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2006, 09:56 |
|
||
|
Подключение к БД
|
|||
|---|---|---|---|
|
#18+
HEEELP MEСпасибо конечно, но мне просто через ODBC надо Ну так надо было сразу и говорить, там еще меньше строчек Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2006, 10:05 |
|
||
|
Подключение к БД
|
|||
|---|---|---|---|
|
#18+
To Локшин Марк Народ ленив, а программист должОн облегчить труд людей, а по сему, я предпочитаю более изящный коннект, который выглядит примерно так: Код: plaintext 1. 2. 3. 4. Тут не нужно прописывать в системе ODBC источник. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2006, 11:08 |
|
||
|
Подключение к БД
|
|||
|---|---|---|---|
|
#18+
Black SavageНарод ленив, а программист должОн облегчить труд людей, а по сему, я предпочитаю более изящный коннект, Ну так источник данных может добавить и сама программа, а зато потом ленивый пользователь может его изменять при необходимости через стандартные диалоги системы. По-моему нужно иметь достаточно веские причины чтобы переписывать такие диалоги... И диалог этот из своей программы вызывать легко можно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2006, 12:14 |
|
||
|
Подключение к БД
|
|||
|---|---|---|---|
|
#18+
Локшин МаркПо-моему нужно иметь достаточно веские причины чтобы переписывать такие диалоги... Причина: Пространственно распределенная структура организации, огромное число пользователей, работающих с программой, и занятый админ... Впрочем, если тебе не лень самому прописывать ODBC источник - ходи ножками и прописывай его на каждой машине. Я еще не разу не видел пользователя способного это сделать самостоятельно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2006, 15:07 |
|
||
|
Подключение к БД
|
|||
|---|---|---|---|
|
#18+
Black SavageВпрочем, если тебе не лень самому прописывать ODBC источник - ходи ножками и прописывай его на каждой машине. Я еще не разу не видел пользователя способного это сделать самостоятельно... Ыыы? Это зачем мне самому прописывать ODBC источник? Создать источник данных можно и программно. А подкорректировать - уже пользователь через стандартный интерфейс. P.S. А я этот компьютер могу вообще в глаза не видеть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2006, 15:31 |
|
||
|
Подключение к БД
|
|||
|---|---|---|---|
|
#18+
To Локшин Марк Ну и чего тебе не нравиться то? Грубо говоря, мой пример и "создает источник данных программно". Только в отличие от реального прописывания ODBC Source не нужно заботиться хватит ли прав у текущего пользователя на данной машине для этой операции. Что бы ты ни написал в своей программе, она запускается от имени и с правами пользователя, а у него права могут быть крайне ограниченными на текущей машине. Впрочем, я не собираюсь развязывать здесь "религиозные войны", а по сему, пусть каждый пишет программы в меру своего понимания проблемы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2006, 16:26 |
|
||
|
Подключение к БД
|
|||
|---|---|---|---|
|
#18+
Black Savageа у него права могут быть крайне ограниченными на текущей машине Вполне естественно, что инсталировать программу должен человек обладающий на то соответствующими правами, а не первый попавшийся пользователь. И менять источники подключения туда-сюда всякий встречный-поперечный не должен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2006, 16:42 |
|
||
|
Подключение к БД
|
|||
|---|---|---|---|
|
#18+
Локшин МаркВполне естественно, что инсталировать программу должен человек обладающий на то соответствующими правами, а не первый попавшийся пользователь А нах ее инсталлировать то? Инсталляция, в твоем понимании, накидать *.dll (виртуальной машины), *.pbl и *.pbd (программы) в нужную папку? Я гляжу, ты либо никогда не занимался поддержкой конечных пользователей или твоя программа работает в пределах одного здания, либо в каждом здании по админу. Надеюсь, тебе не надо обьяснять, что права на доступы пользователя к тем или иным обьектам базы вполне в состоянии присечь действия "первого попавшегося пользователя", при условии, что он знает свой логин и пароль на базу? Гораздо проще записать нужные параметры (сервер, база, тип коннекта) в *.ini файл. При запуске программы прочитать этот инишник, дать пользователю ввести логин и пароль, а после сформировать приведенную мною выше строку коннекта. Зачем огород то городить с прописанием источника ODBC через реестр Windows? Следует подчеркнуть еще одну приятность. Строка APP=YourCoolApplication в моем примере позволяет удобно отслеживать запросы в Profiler . Там в столбце ApplicationName будет фигурировать введенное имя приложения, т.е. YourCoolApplication ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2006, 17:02 |
|
||
|
Подключение к БД
|
|||
|---|---|---|---|
|
#18+
Black SavageА нах ее инсталлировать то? Инсталляция, в твоем понимании, накидать *.dll (виртуальной машины), *.pbl и *.pbd (программы) в нужную папку? Инсталяция - это инсталяция, которая включает в себя и копирование файлова, и конфигурирование системы, и создание и настройку базы и много еще чего... Black SavageЯ гляжу, ты либо никогда не занимался поддержкой конечных пользователей Ну абсолютно неверно. Black Savageили твоя программа работает в пределах одного здания, Даже есть распределенные варианты установки, даже разных программ Black Savageлибо в каждом здании по админу. Обычно ставится на предприятия в которых от 10 компьютеров, обычно - не менее 20. Если за этим хозяйством хотя бы на 0.25 ставки не следит админ, то пользователи просто за%?ут поддержку, в т.ч. с вопросами а где мой документ который я вчера сохранила, не говоря уже про то, что из свича кабель уборщица выдернула. Если у них нет денег даже на такого админа, то все очень просто - значит это не наши клиенты. Black SavageГораздо проще записать нужные параметры (сервер, база, тип коннекта) в *.ini файл. При запуске программы прочитать этот инишник, дать пользователю ввести логин и пароль, а после сформировать приведенную мною выше строку коннекта. А чем это отличается? Тот же файл, только в своем, а не общепризнаном формате Код: plaintext 1. 2. 3. 4. 5. 6. 7. Black SavageЗачем огород то городить с прописанием источника ODBC через реестр Windows? А почему обязательно реестр? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2006, 17:32 |
|
||
|
Подключение к БД
|
|||
|---|---|---|---|
|
#18+
Локшин Марк// Profile st SQLCA.DBMS = "ODBC" SQLCA.AutoCommit = False SQLCA.DBParm = "ConnectString='DSN=sugar_test;UID=sa;PWD='" А в данном случае, источник данных sugar_test нужно завести в Источники данных (ODBC), или вызвать этот же диалог из PB. Локшин МаркНу так источник данных может добавить и сама программа, а зато потом ленивый пользователь может его изменять при необходимости через стандартные диалоги системы. Локшин МаркСоздать источник данных можно и программно. А подкорректировать - уже пользователь через стандартный интерфейс. Из этих фраз я понял, что ты создаешь программно или руками запись в Data Sources (ODBC) , т.е. добавляешь записи либо в Пользовательский DSN или в Системный DSN . Соответственно, эти записи хранятся в реестре Windows : HKEY_LOCAL_MACHINE\SOFTWARE\ODBC Если же ты не создаешь подобных записей, а читаешь свой инишник и генеришь строку коннекта, то в конечном счете должно получиться тоже самое, что и у меня. Тогда не очень понятно, нафига там инфа о пользователе sa ? Простым смертным не обязательно знать логин администратора базы данных. Советую, пересмотреть свой подход к настройке коннекта... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2006, 18:12 |
|
||
|
Подключение к БД
|
|||
|---|---|---|---|
|
#18+
Black SavageЕсли же ты не создаешь подобных записей, а читаешь свой инишник и генеришь строку коннекта, то в конечном счете должно получиться тоже самое, что и у меня. Тогда не очень понятно, нафига там инфа о пользователе sa? Простым смертным не обязательно знать логин администратора базы данных. Советую, пересмотреть свой подход к настройке коннекта... 1. Есть такая вещь как файловый DSN, и конфигурируются все параметры при помощи стандартных диалогов. 2. Так это же для примера я указал такой login, странно было бы думать, что я указываю логин/пароль пользователя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2006, 18:40 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=33820133&tid=1337711]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
53ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 348ms |

| 0 / 0 |
