Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.08.23;
Скачать: [xml.tar.bz2];

Вниз

Веб-сервер должен писать в Interbase DB, а не хочет!   Найти похожие ветки 

 
an-petroff ©   (2009-06-18 10:45) [0]

Сделан веб-сервер - два варианта SGI, ISAPI. (CodeGear RAD  IIS5,6).  Нормально инициируется клиентом. Веб-сервер должен писать в Interbase DB. Я поместил TSQLConnection  на WebModule. Когда я ставлю "connected"  = true в дизайне, проблем нет. Но когда я помещаю такую строку в функцию сервиса и инициирую эту функцию клиентом имею: "Access violation at address …." от клиента.
Полазил по сети нашел, что IIS user account нужно настроить, но не нашел как (для своего уровня).
Если кто подскажет, как справиться с проблемой, буду премного благодарен!


 
Медвежонок Пятачок ©   (2009-06-18 11:01) [1]

то, что что-то там нужно настроить, еще не говорит о том, что access violation возник из за этого.


 
PEAKTOP ©   (2009-06-18 11:09) [2]

строка подключения выглядит, как "127.0.0.1:c:\db\mydb.ib" ?


 
Loginov Dmitry ©   (2009-06-18 11:16) [3]


> Но когда я помещаю такую строку в функцию сервиса и инициирую
> эту функцию клиентом имею: "Access violation at address
> …." от клиента.


А нельзя ли это более подробно описать? Что за функция сервиса? Что за сервис, что за клиент? И что было вместо "..."?


> Полазил по сети нашел, что IIS user account нужно настроить,
>  но не нашел как (для своего уровня).


А причем тут user account? Очень сомнительно, что дело в нем. По умолчанию для IIS user account = "IUSR_ComputerName" - практически бесправный пользователь. Но сомневаюсь, что для коннекта к базе нужны какие-то особые права (кроме логина и пароля).


 
Petr V. Abramov ©   (2009-06-18 13:42) [4]


> Когда я ставлю "connected"  = true в дизайне, проблем нет.
>  Но когда я помещаю такую строку в функцию сервиса и инициирую
> эту функцию клиентом имею: "Access violation at address
> …." от клиента.

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


 
an-petroff ©   (2009-06-19 11:29) [5]

Спасибо за реакцию всем.
Собрал все предложения и:
1. вставил под inetsvr dbx*.ini files и gds32.dll и dbsint.dll
2. сделал еще одного юзера в БД с именем от IIS

В сервисе всего одна строка: SQLConn->Connected = true
                            || false
все одно и то же. Любое обращение к SQLConn или к IBDatabase дает VIOLATION

Если эту строку убираю, то сервис отрабатывает нормально: Разбирает сообщение, пишет в текстовый (тестовый) файл.
нашел https://forums.codegear.com/message.jspa?messageID=18067#18067
там похожая тема.
И моя там тоже есть.


 
Медвежонок Пятачок ©   (2009-06-19 11:30) [6]

тебе же русским по белому написали, что не создан модуль, содержащий IBDatabase


 
an-petroff ©   (2009-06-19 11:40) [7]

Перед обращением делал локально в сервисе:
TIBDatabase * IBDatabase1;
parameters..............
потом connect -  то же самое


 
an-petroff ©   (2009-06-19 11:49) [8]

для Loginov Dmitry: Сервер ISAPI  и CGI - 2 варианта
Протестирован на получение сообщений и запись данных в текстовый файл

для PEAKTOP
строка подключения выглядит, как "127.0.0.1:c:\db\mydb.gdb"
в дизайн проблем подключения нет


 
Медвежонок Пятачок ©   (2009-06-19 11:58) [9]

Где код создания модуля, содержащего IBDatabase1?


 
an-petroff ©   (2009-06-19 12:07) [10]

Пробовал два варианта
1. помещал объект на ВебМодуль - где коннект ставил 1 или 0
2. создавал в сервисной функции - там где идет разборка сообщения


 
Медвежонок Пятачок ©   (2009-06-19 12:12) [11]

Ты код создания показать можешь, или будем лечиться по фотографии?


 
Loginov Dmitry ©   (2009-06-19 12:13) [12]


> для Loginov Dmitry:
> Сервер ISAPI  и CGI - 2 варианта


можно не повторять. В [0] это есть.

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

раз пишет, значит не все еще потеряно :)

Однако ни одного ответа на [3] я не вижу. Не понятно, что Вы имеете ввиду по термином "сервис".


 
an-petroff ©   (2009-06-19 12:20) [13]

WebServer для приема SOAP сообщений. Обслуживает сообщения разного вида (структуры данных). Для каждого вида своя принимающая функция - сервис. Она же должна класть данные в БД.


 
Cobalt ©   (2009-06-19 13:27) [14]

> an-petroff ©
Включи отладку, т.е. на каждый чих выводи в лог (текстовый файл) место (имя процедуры) и содержимое переменных.


 
an-petroff ©   (2009-06-19 13:48) [15]

void TMXServiceImpl::UpdateInvBalances(const Array_Of_Item2 InvBalances)
{
int lon = InvBalances.get_length();
int balns;
UnicodeString pather, sercher;
UnicodeString orgid, sitid, itmid, strid, stats;
for ( int i = 0; i < lon; i++) {
orgid = InvBalances.operator [](i)->OrgID;
// WriterDo(i, "orgid", orgid, 0, true); Фунция записи в файл
sitid = InvBalances.operator [](i)->SiteID;
// WriterDo(i, "sitid", sitid, 0, true);
itmid = InvBalances.operator [](i)->ItemID;
// WriterDo(i, "itmid", itmid, 0, true);
strid = InvBalances.operator [](i)->StorageID;
// WriterDo(i, "strid", strid, 0, true);
balns = InvBalances.operator [](i)->Balance;
// WriterDo(i, "balns", "m", balns, false);
stats = InvBalances.operator [](i)->Status;
// WriterDo(i, "stats", stats, 0, true);
}
Я обычно кладу объект на форму и с ним работаю. Но ничего из ниже приведенного не прошло (Юзер, пароль и LoginPrompt в порядке)
// WebModule3->SQLConnection1->Connected = false;
//WebModule3->IBDtbs1->Open();
//WebModule3->IBDtbs1->Close();
// WebModule3->IBSQL1->ExecQuery();
// WebModule3->IBDtbs1->Connected = false;
// WebModule3->IBQuery1->ExecSQL();
Это попытка создать объект на ходу. С new у меня не получилось
TIBDatabase *IBDtbs2;
if (IBDtbs2->Connected) { int r = 6;} Это просто попытка тронуть IBDtbs2 тоже облом.
}

Комментировал все кроме последних двух строк - тот же результат


 
Медвежонок Пятачок ©   (2009-06-19 14:16) [16]

Ну и где в нашей сказке про белого бычка создается экземпляр WebModule3?


 
an-petroff ©   (2009-06-19 14:26) [17]

int main(int argc, char* argv[])
{
//  try
//  {
   Application->Initialize();
Application->CreateForm(__classid(TWebModule3), &WebModule3);
 Application->Run();
//  }
//  catch (Exception &exception)
//  {
//    Sysutils::ShowException(&exception, System::ExceptAddr());
//  }
 return 0;
}


 
Cobalt ©   (2009-06-19 14:45) [18]

После
TIBDatabase *IBDtbs2;
что находится в IBDtbs2? Объект или каша?
Что в его свойствах?


 
an-petroff ©   (2009-06-19 15:45) [19]

То. что надо прописать путь и т.д. и т.п. с этим все ясно, но в любом случае он уже обладает свойством Connected и его можно взять. Оно на данной стадии мне не нужно. Я просто хочу проверить могу ли я его считать.


 
Cobalt ©   (2009-06-22 13:58) [20]

ну и как проверка?



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2009.08.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.004 c
3-1226034688
Liones
2008-11-07 08:11
2009.08.23
Таблицы Paradox


15-1245616201
Юрий
2009-06-22 00:30
2009.08.23
С днем рождения ! 22 июня 2009 понедельник


8-1196707594
_alex_
2007-12-03 21:46
2009.08.23
Декомпрессоры


4-1214887137
anwe
2008-07-01 08:38
2009.08.23
Обработка WM_CHAR в WH_GETMESSAGE


3-1226433808
EvgCh
2008-11-11 23:03
2009.08.23
Непонятная грабля с master-detail





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский