-
Привет всем! У меня трехзвенная архитектура приложения, средний уровень - это Remote Data Module. На клиенте находится компонент SocketConnection, через который я удалено вызываю процедуру, так: SocketConnection.AppServer.Set_SQL(...). Процедура Set_SQL находится на среднем уровне, остальное для меня просто магия... Если я устанавливаю свойство ADOQuery_Task.SQL.ADD(..) в коде, то все нормально, но если я пытаюсь загрузить код из файла(ADOQuery_Task.SQL.LoadFromFile), то средний уровень просто виснит и ни на что не отвечает, а при закрытии клиента, пишет что проблема с RPC. В чем проблема?
-
RPC это вроде как удаленный вызов процедур... ты там случаем не с другой машины пытаешься код загрузить? а ADO его типа пытается "передать" на загрузку "по месту"... хотя не должно, SQL это же "сбоку бантик" для "черте что"(ADOQuery)... использовал бы родной ADODataSet тогда бы подобное непотребство и не получилось бы даже...
вообще скорее всего причина в попытках пере запросить данные о параметрах после каждого байта полученного из потока в запрос... (проблема в ADOQuery от внесения запроса частями дано известна)
-
Нет, все пока на одном компьютере!!! На среднем уровне, где нах-ся сам exe-шник, есть папка SQL, в ней нах-ся файлы с запросами, и компонент ADOQurey грузит запрос из файла - висяк, а если ADOQureм.SQL.ADD(...) - все нормально, но никуда по сети его передавать не собирается!
-
> ddd329 (16.02.2011 20:43:02) [2]
Попробуй под тем же пользователем загрузить файл в блокнот.
-
> но никуда по сети его передавать не собирается! это ты так думаешь... но что делается "скрыто" не знаешь. например инициализация параметров (что ты в прошлом ответе игнорировал), если есть коннект к базе.
вот почему бы не проверить? загрузить в стринг лист, и уже из него сделать ADOQureм.SQL.Text:= стринглист.Text; если все нормально то изучай чего там в компоненте делается (раз уж не хочешь использовать "родной" ADODataSet), если нет, то очевидно вопрос с ADO сместится на другого "участника".
-
он от хохота виснит....
-
> sniknik © (17.02.11 11:50) [4]
SQL: TStrings;
-
> загрузить в стринг лист, и уже из него сделать ADOQureм. > SQL.Text:= стринглист.Text;
А вот так вот работает)))) Спасибо!!!
|