On-line: гостей 4. Всего: 4 [подробнее..]
АвторСообщение
администратор




Пост N: 2932
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 04.04.13 20:38. Заголовок: Как прицепится к ADS по сети ?


Есть ADS 10.10 в настройках у него стоит порт 6262

Вот таким исходником пытаюсь к нему подрубиться.
 
#include "ads.ch"
proc main
REQUEST ADS
rddSetDefault( "ADSCDX" )
SET SERVER REMOTE
SET CHARTYPE TO OEM
? AdsConnect("MYSERVER") // .f.
? AdsConnect("//127.0.0.1/:6262") // .f.
return


ADS.INI в папке с прогой
 
[MYSERVER]
LAN_IP=127.0.0.1
LAN_PORT=6262


Где мой косяк ?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 257 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 All [только новые]


администратор




Пост N: 226
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 09.04.14 11:06. Заголовок: Dima пишет: А выход..


Dima пишет:

 цитата:
А выход кажется придумал



мне кажется даже два коннекта из одной проги к одному серверу не оч правильно )))
мож еще чего полезет ... кто знает, или коллизии по блокировке пойдут.
попробуй все ж через словарь, а то одна нога в лыже а другая в коньке получается




Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 3968
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 09.04.14 11:08. Заголовок: Haz пишет: а то одн..


Haz пишет:

 цитата:
а то одна нога в лыже а другая в коньке получается


пока так и есть

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 227
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 09.04.14 11:17. Заголовок: Dima пишет: пока та..


Dima пишет:

 цитата:
пока так и есть



главное что работает, хуже не бывает что то улучшать - обычно заканчивается полной переделкой всего

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 3971
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 09.04.14 14:21. Заголовок: Вообще странно что н..


Вообще странно что нельзя организовать SQL запрос из под простого AdsConnect , не AdsConnect60
То ли не доработка то ли фича такая.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 230
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 09.04.14 15:03. Заголовок: Dima пишет: То ли н..


Dima пишет:

 цитата:
То ли не доработка то ли фича такая.


наверное это фича ADS чтоб использовать словарь. Вместо AdsConnect можно использовать AdsConnect60, а наоборот нельзя


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 3972
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 09.04.14 15:32. Заголовок: да это я понял уже ..


да это я понял уже
к сожалению от SQL запросов пришлось отказаться так как при старой схеме подключения через AdsConnect
плюс к этому еще нормально юзать AdsConnect60 не получится.
Нужно как ты и говорил базы в словарь и юзать AdsConnect60 только.

Вот если бы работала AX_SetConnectionHandle тогда бы я решил проблему и смог
бы вернуться на основной хэндл без переподключения (если я конечно верно понял как она работает)
, но во время сборки получаю что функции такой нет.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 231
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 09.04.14 16:29. Заголовок: Dima пишет: Вот есл..


Dima пишет:

 цитата:
Вот если бы работала AX_SetConnectionHandle


она живет в DBFAXS.LIB это что то для FiveWin , не уверен что спасет.

Дима, а что мешает все dbf в словарь то пихнуть ? Просканировать папаку с базами из проги ( даже можно отдельный запихиватель/выпмхиратель написать ) и добавить автоматом.


 цитата:
к сожалению от SQL запросов пришлось отказаться


зато опыт приобрел

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 3973
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 09.04.14 16:48. Заголовок: Ну не хочу я пока со..


Ну не хочу я пока совать базы в словарь так как чую что это где то вылезет
Все же жутко хочется что бы и adsConnect и adsConnect60 жили вместе.
Казалось бы сложного нет ничего.
В начале проги подключаемся через adsConnect и получаем MAINHANDLE
Далее если нужно сделать SQL запрос то используем adsConnect60 и получаем TEMPHANDLE
Поюзав оный делаем так (предварительно закрыв базу ADSSQL)
AdsDisconnect(TEMPHANDLE)
И вот тут нужная некая функция XYZ которая вернет меня к предыдущему и еще
активному подключению XYZ(MAINHANDLE). По ходу это должно сработать !
Но что то не вижу такого в доке.


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 3974
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 09.04.14 16:59. Заголовок: Haz До кучи и вопро..


Haz
До кучи и вопрос на засыпку
В одной и той же проге ты подключаешься через adsConnect60 к одному серверу
и через adsConnect60 к другому серверу. Хэндлы у подключений будут разные.
Как ты будешь между ними переключаться ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 232
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 09.04.14 19:33. Заголовок: Dima пишет: Хэндлы ..


Dima пишет:

 цитата:
Хэндлы у подключений будут разные.
Как ты будешь между ними переключаться ?



подключка идет к словарю, в SELECT можно явно указать из какого словаря брать таблицу а значит и переключаться не придется сталкивался пару лет назад , но честно не помню как именно выкрутился . Надо будет посмотреть ))
помню через что то типа Create Link ... потом забыл как страшный сон , не требовалось больше.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 3975
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 09.04.14 21:06. Заголовок: Haz пишет: помню че..


Haz пишет:

 цитата:
помню через что то типа Create Link


завтра снова буду ковырять так как не хочется отказываться от SQL запросов

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 3976
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.04.14 10:20. Заголовок: По ходу проблему реш..


По ходу проблему решил
В самом начале программы
adshandle:=AdsConnection() // главный хэндл

Когда нужно выполнить SQL запрос , подключаюсь к словарю через
adsConnect60 и получаю новый хэндл TMPHH
После того как поюзал фильтр делаю так в самом конце
AdsDisconnect(tmphh)
AdsConnection(adshandle,.T.) // установить текущим основное подключение через adshandle

При чем если делать AdsDisconnect(tmphh) то в лог пишется ошибка 10054
говорящая лишь о принудительном отключении , по сему AdsDisconnect(tmphh)
не делаю совсем и только 1 раз цепляюсь через adsConnect60 а в остальных
случаях делаю AdsConnection(TMPHH,.T.)
Вот вроде и все

Dima пишет:

 цитата:
При чем если делать AdsDisconnect(tmphh) то в лог пишется ошибка 10054
говорящая лишь о принудительном отключении , по сему AdsDisconnect(tmphh)


Оно как бы и понятно почему возникает , так как словарь открыт.
А как ему корректно сделать CLOSE ?

Dima пишет:

 цитата:
AdsConnection(adshandle,.T.)


Кстати не подозревал о 2-м параметре


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 233
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 10.04.14 11:08. Заголовок: Dima пишет: Кстати ..


Dima пишет:

 цитата:
Кстати не подозревал о 2-м параметре


до сих пор тоже не подозревал, как нашел ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 3980
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.04.14 11:11. Заголовок: Haz пишет: до сих п..


Haz пишет:

 цитата:
до сих пор тоже не подозревал, как нашел ?


смотрел пример svn\harbour-trunk\harbour\contrib\rddads\tests\datad.prg

в нем в комментах есть
 
// if you wanted to retain this connection for later, you could use
// hAdminCon := AdsConnection(0)
// This get/set call would return the current connection, then set it to 0



Ну и на удачу решил попробовать и получилось !

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 234
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 10.04.14 11:42. Заголовок: Dima пишет: у и на ..


Dima пишет:

 цитата:
у и на удачу решил попробовать и получилось !



может там еще какие чудеса есть а мы то не знаем


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 3981
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.04.14 13:32. Заголовок: Haz пишет: может та..


Haz пишет:

 цитата:
может там еще какие чудеса есть а мы то не знаем



хорошо бы еще такое чудо найти (надо мне) но пока не вижу
Dima пишет:

 цитата:
Dima пишет:

цитата:
При чем если делать AdsDisconnect(tmphh) то в лог пишется ошибка 10054
говорящая лишь о принудительном отключении , по сему AdsDisconnect(tmphh)


Оно как бы и понятно почему возникает , так как словарь открыт.
А как ему корректно сделать CLOSE ?



Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 235
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 10.04.14 14:19. Заголовок: Dima пишет: Оно как..


Dima пишет:

 цитата:
Оно как бы и понятно почему возникает , так как словарь открыт.



может это алиас открыт ? и на что влияет эта 10054 ( не нгашел ее в хелпе )

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 3982
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.04.14 14:22. Заголовок: Haz пишет: может эт..


Haz пишет:

 цитата:
может это алиас открыт ?


ну у меня так
 
if tmphh==nil
if !file(cDictionary) // для каждого юзера создаем свой словарик
ADSDDCREATE( cDictionary,, "Словарь данных ADSDEMO",@tmphh)
AdsDDaddTable( "volvoAT",ads_share+"dbf\volvo.dbf", "")
AdsDDCreateUser(, alltrim(sys_name), "" , "Пользователь "+alltrim(sys_name))
Closetmphh()
endif


tmphh:=nil
IF !adsConnect60( cDictionary,_servtype,alltrim(sys_name), , ,@tmphh )
Soob("Ошибка подключения к словарю данных","r/r","gr+/r")
return nil
else
*AdsSetCharType(2, .t.)
AdsSetDeleted(.T.)
AdsRightsCheck(.f.)
ENDIF
else
AdsConnection(tmphh,.t.)

endif


То есть мне бы хотелось закрывать временный коннект через AdsDisconnect(tmphh)
но так как словарь открыт то получаю ошибку (не смертельную) 10054 и ее видно
только в логе ADS. Вот и требуется каким то образом словарь в начале закрыть , но чем ?

Haz пишет:

 цитата:
и на что влияет эта 10054 ( не нгашел ее в хелпе )



В Help ее нет
http://devzone.advantagedatabase.com/dz/Content.aspx?Key=17&RefNo=081204-2102

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 3983
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.04.14 15:26. Заголовок: Dima пишет: Dima пи..


Dima пишет:

 цитата:
Dima пишет:

цитата:
AdsConnection(adshandle,.T.)


Кстати не подозревал о 2-м параметре



По ходу я тупанул и нет 2-ого параметра
Вот такой вызов AdsConnection() вернет текуший хендл подключения
А вот так AdsConnection(adshandle) переключится на него

 
HB_FUNC( ADSCONNECTION ) /* Get/Set func to switch between connections. */
{
HB_ADS_RETCONNECTION( hb_ads_getConnection() );

hb_ads_setConnection( HB_ADS_PARCONNECTION( 1 ) );
}



Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 236
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 10.04.14 17:55. Заголовок: Dima пишет: А вот т..


Dima пишет:

 цитата:
А вот так AdsConnection(adshandle) переключится


похоже на правду



 цитата:
ну у меня так


и нет ни одного вызова dosql ? ADS кеширует запрjсы , может перед дисконнектом кеш слить сначала ?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 257 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 96
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет