Concurrent programs на pl/sql в формах

 
0
 
Oracle
ava
guest | 05.12.2004, 17:40
Я только начинаю изучать pl/sql и Oracle eBS, нужна помощь.
Такая проблема, пишу программу на pl/sql, которая делала бы апдейт имени клиента, по вводимому номеру клиента. Но это надо делать не в конкретной таблице базы данных, а через Oracle applications forms, то есть надо создать sql файл, котоый бы вызывался в формах как concurrent program.
Раньше приходилось делать такое в SQL*plus, зная названия используемых полей, а тут требуется процедура, которая была бы связывала названия полей в базе с названиями в формах. Как это лучше сделать? 3аранее благодарен.
Comments (1)
ava
igon | 06.12.2004, 05:42 #
Цитата
eBS
или iAS? :)

Цитата
Но это надо делать не в конкретной таблице базы

Может лучше
Цитата
Но это надо делать не прямым Update конкретной таблицы базы
?

Просто по номеру клиента Update его имени делать нельзя, разве что генерировать его случайно smile. Поэтому собственно новое имя клиента тоже нужно. Для иллюстрации вполне подойдет процесс авторизации, реализованный на jsp

Файл index.jsp


<%@ page contentType="text/html;charset=Windows-1251"%>
<html>
<head>
<meta content="text/html; charset=WINDOWS-1251" http-equiv="Content-Type">
<meta http-equiv="Expires" content="0">
<meta http-equiv="Cache-Control" content="max-age=0">
<link href="/webapp/css/oracle.css" rel="stylesheet" type="text/css">
<title>Вход</title>
</head>
<body>
<div align="center">
<font color=green>
<h1><font size="7" face="Times New Roman" color="#336699"><i>Ввод</i></font> </h1>
</font></div>
<div align="center" valign="center">
<form method="POST" action="login.jsp">
<table bgcolor="#CFCFCF" border="0" cellpadding="5" cellspacing="0">
<tr bgcolor="black" style="color: white">
<th nowrap colspan="2">Авторизация доступа</th>
</tr>
<tr>
<td nowrap>Пользователь:</td> //Для твоего случая это номер клиента
<td>
<input type="TEXT" maxlength="10" name="LOGIN" size="10" value="">
</td>
</tr>
<tr>
<td nowrap>Пароль:</td> // А это - его новое имя
<td>
<input maxlength="10" name="PASSW" size="10" type="password" value="">
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="SUBMIT" name="SUBMIT" value=" OK " class="button">
</td>
</tr>
</table><br>
</form>
</div>
</body>
</html>


index.jsp вызывает файл login.jsp


login.jsp
<%@ page import="java.sql.*, java.math.BigDecimal" contentType="text/html;charset=Windows-1251"%>
<html>
<head>
<meta content="text/html; charset=WINDOWS-1251" http-equiv="Content-Type">
<meta http-equiv="Expires" content="0">
<meta http-equiv="Cache-Control" content="max-age=0">
<link href="/webapp/css/oracle.css" rel="stylesheet" type="text/css">
<title>Вход</title>
</head>
<body>
<%
String employee = new String();
String password = new String();

try
{
employee = request.getParameter("LOGIN");

password = request.getParameter("PASSW");
// GET_EMP_LOG - это хранимая процедура, которая и выполнит то, что нужно, для клиента с параметрами employee и password (номер и имя клиента)
CallableStatement cs = conn.prepareCall("{ ? = call GET_EMP_LOG('" + employee + "','" + password+ "') }");
cs.registerOutParameter(1,Types.NUMERIC); // Сюда помещается результат функции
cs.execute();

if(cs.getInt(1) == 0)
{
// пользователь не прошел аутентификацию
response.sendRedirect("index.jsp"); // Неудача - отправляем назад
return;

}
else
{

// Успешно - отправляем дальше
response.sendRedirect("main.jsp"); return;
}
}
...

Код я, естественно, сильно урезал
Любые инициируемые пользователем изменения в БД я бы порекомендовал делать через хранимые процедуры
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
  guest   igon
advanced
Submit