Форум » 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

Pasha: Почему не сработает ? Должна. Но, поскольку используются разные rdd, то драйвер надо указать в команде напрямую. Если в файл, открытый через dbfcdx, и надо добавить записи с letodb, то append from (cFile) via LETO где cFile должен быть с параметрами коннекта Если наоборот, то: append from (cFile) via DBFCDX

AlexMyr: Пробовал сначала без параметров коннекта, вылетал по ошибке. Добавил параметры коннекта, ошибок нет, но и записи не переносятся, буду копать дальше.

AlexMyr: Еще один момент: dbcreate("temp",{...},"DBFCDX",.T.) файл создался но не открывается, надо dbuseare("temp",...) использовать.


Pasha: AlexMyr пишет: Пробовал сначала без параметров коннекта, вылетал по ошибке. Добавил параметры коннекта, ошибок нет, но и записи не переносятся, буду копать дальше. Так файл открывается через dbfcdx, и записи добавляются с leto ? А насчет временного файла, надо еще алиас в dbCreate указывать

AlexMyr: Pasha пишет: Так файл открывается через dbfcdx, и записи добавляются с leto ? основная задача на leto, потом копируются записи с leto в локальную базу, открытую через dbfcdx, и потом локальная база улетает по почте. Pasha пишет: А насчет временного файла, надо еще алиас в dbCreate указывать спасибо, попробую

AlexMyr: Вот что выяснил, если создать локально файл и добавить одну пустую запись в него, то с leto все нормально переноситься по append from, если не добавлять, а сразу после dbcreate() делать append from, то добавляется одна запись в базу на leto. Вот!

Pasha: Не очень понятно. Алексей, а можно код показать, что не так работает ?

AlexMyr: Pasha пишет: Не очень понятно. Алексей, а можно код показать, что не так работает ? Сейчас попробую минимальный примерчик собрать.

AlexMyr: На тестовом примере в базу на leto записи не добавляются, видно где-то у меня в коде что-то не так. Дальше, если dbappend() закомментировано, записи не переносятся, если раскомментировано, то все нормально. [pre2] Function Main Local cPath := "//127.0.0.1:2812/temp/" REQUEST DBFCDX REQUEST LETO RDDSETDEFAULT( "LETO" ) ? "Start" dbCreate( cPath+"Nakl1", { {"NORD","N",10,0},{"DORD","D",8,0},{"SUMMA","N",12,2} } ) ? "Files has been created" use ( cPath+"Nakl1" ) New ? "Files has been opened and indexed" AddNakl( 1, Date(), { 1400.5, 28632.28, 800.51 } ) AddNakl( 2, Date(), { 58003, 930.5 } ) dbcloseall() altd() dbCreate("temp1",{ {"NORD","N",10,0},{"DORD","D",8,0},{"SUMMA","N",12,2} },"DBFCDX",.T.,"temp1") // dbappend() // uncomment for append from append from (cPath+"nakl1") via "LETO" Return Nil Function AddNakl( n_ord, d_ord, aSumm ) Local i, sumAll := 0 leto_BeginTransaction() select NAKL1 append blank replace NORD with n_ord, DORD with d_ord, SUMMA with sumAll leto_CommitTransaction() Return .T. [/pre2]

Pasha: AlexMyr пишет: Дальше, если dbappend() закомментировано, записи не переносятся, если раскомментировано, то все нормально. Что очень странно, так как в файл открыт через dbfcdx, и команду append from отрабатывает dbfcdx, а не leto dbfcdx должен просто открыть файл через указанный драйвер, и в цикле по записям добавить их. Вставлю-ка я в свой dbedit выполнение append from через другой драйвер, и посмотрю, как он отработает.

Pasha: Я нашел глюк в leto для случая копирования записей между разными драйверами client\leto1.c строка 4026 надо добавить проверку: if( !leto_CheckArea( pAreaDst ) || вечером скину

AlexMyr: Pasha пишет: вечером скину будем ждать!

AlexMyr: Pasha Спасибо, работает

sashaBG: Привет Всем кто использует LetoDB ! Сервер LetoDB работает отлично ! У меня все программы уже на етой базе. Все работает безпроблемно . Самый большой клиент у меня имеет 25 р. мест. за год работы не наблюдались никакие пропажи информации и нарушение логической стр. данных , благодаря транзакций. Большое спасибо г-ну Крезину и Паше конечно за професионально проделную работу ! Но вот клиенты начали заекатся на возможность подключeния к базе через WEB . Так как я не знаток C у меня вопрос к Паше : Возможно ли написание PHP Extention для LetoDB ? Если да - Я БУДУ Хорошим тестером :) P.S. тут я читал как пишется такая щука

AlexMyr: sashaBG пишет: Но вот клиенты начали заекатся на возможность подключeния к базе через WEB Но клиентская прога и есть своеобразный браузер для letodb, а через web как по мне то это уже лишнее.

Andrey: sashaBG пишет: за год работы не наблюдались никакие пропажи информации и нарушение логической стр. данных , благодаря транзакций. Будьте так добры, напишите схематично как правильно надо писать транзакции. Заранее спасибо.

Pasha: sashaBG пишет: Возможно ли написание PHP Extention для LetoDB ? Из php можно обращаться к COM-серверу. А пример LetoDB COM сервера я делал: см. utils\olesrv Правда, это будет работать только в windows Может быть, такой вариант подойдет ?

alkresin: sashaBG пишет: Но вот клиенты начали заекатся на возможность подключeния к базе через WEB . Так как я не знаток C у меня вопрос к Паше : Возможно ли написание PHP Extention для LetoDB ? Я не Паша, но постараюсь ответить. Чтобы сделать PHP Extention, надо сначала существенно переработать код Leto RDD - отделить, собственно, RDD от функций, осуществляющих обмен с сервером - создать слой, API, к которому можно обращаться из не-Харборовских программ. Это вполне реальная, но довольно трудоемкая задача. Я бы вам посоветовал для подключения через Web использовать CGI интерфейс. Компьютеры сейчас довольно мощные - потянут, если только у вас не сотни одновременых подключений через Web. Я сам использую CGI, Javascript и Ajax, все нормально работает.

Pasha: Александр, а что если прикрутить запросы query из dbc к letodb ? Хотя бы в качестве readonly запросов

AlexMyr: Andrey пишет: Будьте так добры, напишите схематично как правильно надо писать транзакции. Смотрим пример letodb\tests\test_ta.prg



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