Форум » LetoDB, HbNetio. » Leto DB Server (продолжение 8) » Ответить

Leto DB Server (продолжение 8)

Pasha: Немного доработал документацию к letodb

Ответов - 273, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 All

sashaBG: Спасибо за ответы ! Pasha пишет: Правда, это будет работать только в windows Паша ты имееш виду IIS Сервер или можно и через например XAMPP под Windows? Андрей вот етот код у меня сейчас работает сначало немножко раскажу конкретно етот Документ сохраняется в двух файлах (Нулевая так я назвал ) 0-ая часть ( или Master часть) и N-ая часть (или Detail часть) //Начало транзакции-------------------------------------------- LETO_BEGINTRANSACTION( ) lSaveN := _N_SAVE() //Сохраняем (Detail часть) IF lNew0 // если у нас новы документ или новая Master часть lSave0 := _0_SAVE() // Сохранеям Master часть SET_SCOPE() // Устанавливаем зону видимости от Мастер к Детаил ENDIF IF lSaveN .and. lSave0 // если все удачно сохранилось IF ! LETO_COMMITTRANSACTION() msgstop( "НЕУДАЧНАЯ Транзакция !" ) ENDIF ELSE LETO_ROLLBACK() //откат ENDIF //Конец транзакции-------------------------------------------- Пока так работает К спецам: Если что-то не так СОВЕТУЙТЕ ! P.S. Не могу отформатировать текст :(

Andrey: alkresin пишет: Я бы вам посоветовал для подключения через Web использовать CGI интерфейс. Компьютеры сейчас довольно мощные - потянут, если только у вас не сотни одновременых подключений через Web. Я сам использую CGI, Javascript и Ajax, все нормально работает. Очень интересно ! Давно хочу такое... Никто и не ответил мне в этой теме http://clipper.borda.ru/?1-3-20-00000218-000-0-0-1342804573 А чуть подробней по "подключению через Web используя CGI интерфейс" можно отписаться в другой теме, чтобы здесь не "мусорить" ! Заранее спасибо за ответ !

alkresin: Pasha пишет: Александр, а что если прикрутить запросы query из dbc к letodb ? Хотя бы в качестве readonly запросов Я так и хотел сделать - может, помните, писал когда-то о планах реализовать SQL - запросы в letodb. Даже начал переводить тот фрагмент кода из dbc на C - но потом что-то отвлекло и забыл про это дело...


santy: Вот это интересно. SQL на letodb - прекрасная идея. Потом уже на уровне ядра (x)Harbour.

Pasha: alkresin пишет: Я так и хотел сделать - может, помните, писал когда-то о планах реализовать SQL - запросы в letodb. Даже начал переводить тот фрагмент кода из dbc на C - но потом что-то отвлекло и забыл про это дело... Я планировал это сделать в виде отдельного rdd - наследника DBFCDX/DBFNTX. Для простых запросов по одной или нескольким таблицам в этом rdd можно было бы добавлять/удалять поля (FIELD), для более сложных - формировать таблицу в памяти (временный файл) и заполнять ее. Этот rdd можно прикрутить к серверу letodb, а клиентская часть leto в таком случае почти не меняется.

Pasha: Александр, а можно ли перенести проект с CVS на SVN ?

alkresin: Pasha пишет: Александр, а можно ли перенести проект с CVS на SVN ? А как это делается ?

Pasha: Не знаю. Наверное, надо спросить в harbour dev, они же переносили головной проект. В любом случае у меня прав на это нет.

santy: Заходите под админом во вкладке Project Admin/Feature Settings установите галочку для SVN уберите для CVS. Последнюю версию с CVS сберегите. Попробуйте закачать туда данные через SVN Можна конечно почитать инструкцию https://sourceforge.net/apps/trac/sourceforge/wiki/Subversion%20import%20instructions Но у меня вышло по простому.

alkresin: Pasha пишет: Не знаю. Наверное, надо спросить в harbour dev, они же переносили головной проект. В любом случае у меня прав на это нет. Теперь есть, я вас добавил в project admins.

Pasha: Спасибо !

sashaBG: Вот финкция из примерчика TEST_TA.PRG: Function AddNakl( n_ord, d_ord, aSumm ) Local i, sumAll := 0 leto_BeginTransaction() select NAKL2 for i := 1 to Len( aSumm ) append blank replace NORD with n_ord, DORD with d_ord, NPROD with i, SUMMA with aSumm sumAll += aSumm next select NAKL1 append blank replace NORD with n_ord, DORD with d_ord, SUMMA with sumAll leto_CommitTransaction() // Я добавил етот кусок select NAKL2 leto_commit() ?"NAKL2 recno() ->",recno() // Выходит 0 select NAKL1 leto_commit() ?"NAKL1 recno() ->",recno()// здесь тоже 0 Return .T. А нужно показать номер новодобавленой записи !

SergKis: Andrey пишет: Очень интересно ! Давно хочу такое... Путь к этому: - подобрать под себя CMS - изучить - научиться подключать CGI интерфейс в CMS - возможно подправить под себя CMS Мы используем CMS с MySql и php. CGI интерфейс hb2.0 с использованием scripta (см.hb20\examples\hscript\hscript.prg). Базы на LetoDb и cdx. CMS обеспечивает внешний вид (css), меню, данные пользователя, пароли ... В CGI из MySql подчитываются данные сессии (user, password, css-ы и т.д.) Все нормально работает. Задача: Ввод жильцами данных по счетчикам учета воды в квартплате

Andrey: SergKis Чтобы не разводить здесь лишнего, я перенес свой вопрос к вам в тему http://clipper.borda.ru/?1-3-0-00000218-000-0-1-1353420057

Pasha: sashaBG пишет: А нужно показать номер новодобавленой записи ! Вызов leto_commit в данном случае не поможет, он будет просто проигнорирован. Сейчас leto_CommitTransaction просто возвращает результат выполнения: успешно или нет. Надо добавить возврат массива номеров последних добавленных записей для каждой рабочей области, которая задействована в транзакции. А на клиенте обрабатывать этот массив, устанавливая номера добавленных записей. Сделаю.

sashaBG: Паша, наверное не стой усложнять leto_CommitTransaction Все дело было потому что в моем проекте после добавления нового документа я показываю в статус линии данные о текущей записи и так замаетил что после транзакции добавления нового документа показывает 0. я пока в своем проекте справился делая после leto_CommitTransaction , DBSEEK(cNewDOK) и все о.к. После етого показывает все нормально . Спасибо !

Pasha: Дело в том, что если после транзакции указатель остается на добавленной записи, то будут неправильно работать операции навигации по этой рабоче области (skip). Так что лучше эти данные все-таки передавать и отрабатывать их.

alkresin: Pasha пишет: Дело в том, что если после транзакции указатель остается на добавленной записи, то будут неправильно работать операции навигации по этой рабоче области (skip). Так что лучше эти данные все-таки передавать и отрабатывать их. А как именно обрабатывать ? По-моему, указатель записи после транзакции должен быть там же, где и в том случае, если этот фрагмент кода исполняется без транзакции. Т.е., если речь идеь о добавлении группы записей, то - на последней добавленной записи.

Pasha: Алгоритм примерно такой. Сервер пусть формирует массив вида ulAreaID, ulRecNo, ... и заполняет при добавлении последний номер добавленной записи (только один для р/о) Клиент после транзакции просматривает этот массив, и, если для указанной в нем р/о номер записи на клиенте 0, заменяет его на принятый номер записи. Иначе получится, что если после транзакции с добавленной записью клиент выполняет какое-то действие, то сервер ее просто не найдет.

alkresin: А почему о массиве речь идет, а не об одной последней добавленной записи ?



полная версия страницы