Всвязи с недавней заметкой о продуктивности работы, сегодня весь день в любимом эклипсе тружусь исключительно шоткатами. Потому поделюсь немного. Может кто тоже захочет.
- Во первых - вот референс.
- Во вторых - шпаргалка (pdf).
- (Бонус)В третьих - отличные обоины.
Powered by ScribeFire.
Вот я и привёл этот проектик в более-менее удобоваримый вид (читай: “иногда работает“). Знакомьтесь: filteRSS. Собственно, ничего нового в концепции, и ничего сложного в реализации. Итак, по пунктам:
Потребовалось мне по долгу службы поставить и настроить Subversion (разработка у нашего отдела ведётся на php).
Из того, что успел почерпнуть:
- svn-сервер ставится на той же машине что и Апач (ибо svnadmin create воспринимает в качестве параметра исключительно физический путь).
- Требуется чтобы файлы из репозитария выгружались не на локальную машину, а на ту же машину, на которой стоит Апач. Потом нужно настроить для каждого девелопера свой поддомен для работы (типа user1.ukrcard.com).
- Проблема в том, что svn import воспринимает, снова таки, физический путь. Из этого следует что удалённые папки для выгрузки репозитариев нужно будет подключить к машинам как сетевые диски. А для этого - пооткрывать соответствующие порты на серваке, на котором Апач.
- Итого получается следующая схема (кликабельно):

У кого какие идеи/пожелания/советы будут?
Powered by ScribeFire.
Итак, ситуёвина:
в классе ora есть функция
function addBindByName($key, $val)
{
if (':' != substr($key,0,1)) {
$key = ':'.$key;
}
echo $key.' => '.$val;
$this->bind[$key] = $val;
}
на странице, после инклуда файла этого класса вызываю
$this->ora->addBindByName(":test1", $test1);
$this->ora->addBindByName(":test2", $test2);
$this->ora->addBindByName(":test3", $test3);
$this->ora->addBindByName(":test4", $test4);
Есть также в том же классе функция ociexeb, в которой часть, отвечающая за бинды выглядит так:
if (!empty($this->bind)) {
foreach ($this->bind as $key=>$val) {
if (!oci_bind_by_name($this->res, $key, $val, 4000)) {
return false;
Ну и далее - OCIExecute.
Результат - следующий:
во все поля записывается значение последней переменной из блока addBindByName (в данном случае - значение переменной $test4).
Что сделано неверно?
Powered by ScribeFire.
По долгу службы появилось пару вопросов. Может знает кто.
Первый: как оракловским sql’ем вызывается транзакция?
Пробовал
START TRANSACTION; ... COMMIT WORK;
BEGIN TRANSACTION; ... COMMIT WORK;
BEGIN; ... COMMIT WORK;
И прочее. Где я не прав?
Второй: инструментом Toad for Oracle созданы сиквенсы для двух таблиц. Когда вызываю их из кода
SELECT SEQ_ONE.CURRVAL||SEQ_TWO.NEXTVAL FROM DUAL
возвращается ошибка
Error: 8002 ORA-08002: sequence SEQ_ONE.CURRVAL is not yet defined in this session
Где я неправ?
UPD2: Сорри, тоже разобрался. Без предварительного вызова SEQ_ONE.NEXTVAL, SEQ_ONE.CURRVAL никаких положительных результатов не даёт ![]()
Третий: по тому самому селекту в сиквенсе добываю следующее значение последовательности функцией @OCIFetchStatement() (PHP). Насколько говорит документация, функция, цитирую, “Выбирает все строки из результата запроса в массив”. Соответственно, объединяю массив в строку функцией implode() (так как в результате в массиве должно появиться только одно значение, следующее значение последовательности).
Возвращаю строку echo‘й. В документ пишется Array.
Где я дурак?
UPD1: решил, методом @OCIFetchStatement(OCI_NUM)
Буду ужасно благодарен.




