Автор | Сообщение |
Pasha
|
| Администратор
|
Пост N: 2416
Зарегистрирован: 23.05.05
|
|
Отправлено: 22.06.12 18:14. Заголовок: Leto DB Server (продолжение 8)
Немного доработал документацию к letodb
|
|
|
Ответов - 273
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
All
[только новые]
|
|
sashaBG
|
| постоянный участник
|
Пост N: 111
Зарегистрирован: 15.09.05
|
|
Отправлено: 12.11.12 14:27. Заголовок: Спасибо
Спасибо за ответы ! 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
|
| постоянный участник
|
Пост N: 2401
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.11.12 14:59. Заголовок: alkresin пишет: Я б..
alkresin пишет: цитата: | Я бы вам посоветовал для подключения через Web использовать CGI интерфейс. Компьютеры сейчас довольно мощные - потянут, если только у вас не сотни одновременых подключений через Web. Я сам использую CGI, Javascript и Ajax, все нормально работает. |
| Очень интересно ! Давно хочу такое... Никто и не ответил мне в этой теме http://clipper.borda.ru/?1-3-20-00000218-000-0-0-1342804573 А чуть подробней по "подключению через Web используя CGI интерфейс" можно отписаться в другой теме, чтобы здесь не "мусорить" ! Заранее спасибо за ответ !
|
|
|
alkresin
|
| moderator
|
Пост N: 429
Зарегистрирован: 06.07.06
|
|
Отправлено: 12.11.12 15:11. Заголовок: Pasha пишет: Алекса..
Pasha пишет: цитата: | Александр, а что если прикрутить запросы query из dbc к letodb ? Хотя бы в качестве readonly запросов |
| Я так и хотел сделать - может, помните, писал когда-то о планах реализовать SQL - запросы в letodb. Даже начал переводить тот фрагмент кода из dbc на C - но потом что-то отвлекло и забыл про это дело...
|
|
|
santy
|
| |
Пост N: 129
Зарегистрирован: 16.12.08
|
|
Отправлено: 12.11.12 15:33. Заголовок: Вот это интересно. S..
Вот это интересно. SQL на letodb - прекрасная идея. Потом уже на уровне ядра (x)Harbour.
|
|
|
Pasha
|
| Администратор
|
Пост N: 2527
Зарегистрирован: 23.05.05
|
|
Отправлено: 12.11.12 16:49. Заголовок: alkresin пишет: Я ..
alkresin пишет: цитата: | Я так и хотел сделать - может, помните, писал когда-то о планах реализовать SQL - запросы в letodb. Даже начал переводить тот фрагмент кода из dbc на C - но потом что-то отвлекло и забыл про это дело... |
| Я планировал это сделать в виде отдельного rdd - наследника DBFCDX/DBFNTX. Для простых запросов по одной или нескольким таблицам в этом rdd можно было бы добавлять/удалять поля (FIELD), для более сложных - формировать таблицу в памяти (временный файл) и заполнять ее. Этот rdd можно прикрутить к серверу letodb, а клиентская часть leto в таком случае почти не меняется.
|
|
|
Pasha
|
| Администратор
|
Пост N: 2529
Зарегистрирован: 23.05.05
|
|
Отправлено: 13.11.12 14:46. Заголовок: Александр, а можно л..
Александр, а можно ли перенести проект с CVS на SVN ?
|
|
|
alkresin
|
| moderator
|
Пост N: 435
Зарегистрирован: 06.07.06
|
|
Отправлено: 13.11.12 15:25. Заголовок: Pasha пишет: Алекса..
Pasha пишет: цитата: | Александр, а можно ли перенести проект с CVS на SVN ? |
| А как это делается ?
|
|
|
Pasha
|
| Администратор
|
Пост N: 2530
Зарегистрирован: 23.05.05
|
|
Отправлено: 13.11.12 15:34. Заголовок: Не знаю. Наверное, н..
Не знаю. Наверное, надо спросить в harbour dev, они же переносили головной проект. В любом случае у меня прав на это нет.
|
|
|
santy
|
| |
Пост N: 131
Зарегистрирован: 16.12.08
|
|
Отправлено: 13.11.12 15:46. Заголовок: Заходите под админом..
|
|
|
alkresin
|
| moderator
|
Пост N: 437
Зарегистрирован: 06.07.06
|
|
Отправлено: 13.11.12 17:55. Заголовок: Pasha пишет: Не зна..
Pasha пишет: цитата: | Не знаю. Наверное, надо спросить в harbour dev, они же переносили головной проект. В любом случае у меня прав на это нет. |
| Теперь есть, я вас добавил в project admins.
|
|
|
Pasha
|
| Администратор
|
Пост N: 2531
Зарегистрирован: 23.05.05
|
|
Отправлено: 13.11.12 20:42. Заголовок: Спасибо !..
Спасибо !
|
|
|
|
sashaBG
|
| постоянный участник
|
Пост N: 112
Зарегистрирован: 15.09.05
|
|
Отправлено: 20.11.12 12:28. Заголовок: ТРАНЗАКЦИИ
Вот финкция из примерчика 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
|
| постоянный участник
|
Пост N: 38
Зарегистрирован: 17.02.12
|
|
Отправлено: 20.11.12 14:46. Заголовок: Andrey пишет: Очень ..
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
|
| постоянный участник
|
Пост N: 2411
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.11.12 17:05. Заголовок: SergKis Чтобы не ра..
|
|
|
Pasha
|
| Администратор
|
Пост N: 2546
Зарегистрирован: 23.05.05
|
|
Отправлено: 20.11.12 17:30. Заголовок: sashaBG пишет: А ну..
sashaBG пишет: цитата: | А нужно показать номер новодобавленой записи ! |
| Вызов leto_commit в данном случае не поможет, он будет просто проигнорирован. Сейчас leto_CommitTransaction просто возвращает результат выполнения: успешно или нет. Надо добавить возврат массива номеров последних добавленных записей для каждой рабочей области, которая задействована в транзакции. А на клиенте обрабатывать этот массив, устанавливая номера добавленных записей. Сделаю.
|
|
|
sashaBG
|
| постоянный участник
|
Пост N: 113
Зарегистрирован: 15.09.05
|
|
Отправлено: 20.11.12 22:53. Заголовок: Стоит ли ?
Паша, наверное не стой усложнять leto_CommitTransaction Все дело было потому что в моем проекте после добавления нового документа я показываю в статус линии данные о текущей записи и так замаетил что после транзакции добавления нового документа показывает 0. я пока в своем проекте справился делая после leto_CommitTransaction , DBSEEK(cNewDOK) и все о.к. После етого показывает все нормально . Спасибо !
|
|
|
Pasha
|
| Администратор
|
Пост N: 2547
Зарегистрирован: 23.05.05
|
|
Отправлено: 21.11.12 08:54. Заголовок: Дело в том, что если..
Дело в том, что если после транзакции указатель остается на добавленной записи, то будут неправильно работать операции навигации по этой рабоче области (skip). Так что лучше эти данные все-таки передавать и отрабатывать их.
|
|
|
alkresin
|
| moderator
|
Пост N: 448
Зарегистрирован: 06.07.06
|
|
Отправлено: 21.11.12 09:08. Заголовок: Pasha пишет: Дело в..
Pasha пишет: цитата: | Дело в том, что если после транзакции указатель остается на добавленной записи, то будут неправильно работать операции навигации по этой рабоче области (skip). Так что лучше эти данные все-таки передавать и отрабатывать их. |
| А как именно обрабатывать ? По-моему, указатель записи после транзакции должен быть там же, где и в том случае, если этот фрагмент кода исполняется без транзакции. Т.е., если речь идеь о добавлении группы записей, то - на последней добавленной записи.
|
|
|
Pasha
|
| Администратор
|
Пост N: 2548
Зарегистрирован: 23.05.05
|
|
Отправлено: 21.11.12 09:24. Заголовок: Алгоритм примерно та..
Алгоритм примерно такой. Сервер пусть формирует массив вида ulAreaID, ulRecNo, ... и заполняет при добавлении последний номер добавленной записи (только один для р/о) Клиент после транзакции просматривает этот массив, и, если для указанной в нем р/о номер записи на клиенте 0, заменяет его на принятый номер записи. Иначе получится, что если после транзакции с добавленной записью клиент выполняет какое-то действие, то сервер ее просто не найдет.
|
|
|
alkresin
|
| moderator
|
Пост N: 449
Зарегистрирован: 06.07.06
|
|
Отправлено: 21.11.12 10:34. Заголовок: А почему о массиве р..
А почему о массиве речь идет, а не об одной последней добавленной записи ?
|
|
|
Ответов - 273
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
All
[только новые]
|
|