Форум: "Прочее";
Текущий архив: 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.007 c