Страница 1 из 2

Трабл с запросом ?

Добавлено: 11 июл 2003, 19:01
kircom
При использовании запроса
select convert(<поле текст>,SQL_Double) from таблица происходит разрыв соединения с клиеном и выполнение запроса на сервере. Что сделать можно ?

Re: Трабл с запросом ?

Добавлено: 14 июл 2003, 08:28
IgorA
<поле текст> - это поле типа строка?

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

Re: Трабл с запросом ?

Добавлено: 14 июл 2003, 08:39
IgorA
А еще, возможно, первасив не умеет конвертировать пустые строки.

Re: Трабл с запросом ?

Добавлено: 14 июл 2003, 09:16
kircom
Для того чтобы небыло непоняток привожу часть запроса:
Select IF(Rtrim(Ltrim(KATPARTY.Nanaliz))='',convert(0,Sql_Double),convert(katparty.nanliz,SQL_Double))
From katparty
Обычно это поле в системе Галактика не используется, но ны его используем для хранения очень хитрого числа очень нам нужного. 8)

Re: Трабл с запросом ?

Добавлено: 14 июл 2003, 11:50
IgorA
У меня этот запрос выполняется, если поле katparty.nanАliz.

>> Обычно это поле в системе Галактика не используется,

В моей базе, это поле, заполнено, хотя я туда ничего, сам, не писал.


p.s. Естественно, этот запрос я выполнял в Первасиве, а не в Галактике.

Re: Трабл с запросом ?

Добавлено: 14 июл 2003, 11:51
DarkGreen
А зачем Rtrim(Ltrim? Любого из них достаточно ;)
А что значит: Разрыв соединения с клиентом и выполнение запроса на сервере? Это как? ???

Re: Трабл с запросом ?

Добавлено: 14 июл 2003, 11:53
DarkGreen
Опс, на счет первого я конечно загнул

Re: Трабл с запросом ?

Добавлено: 14 июл 2003, 12:53
kircom
Это поле номер лабораторного анализа мы в нем храним нужную нам цифру. Иногда такая же ботва бывает когда делаещь запрос по накладным к графе количество из-за малельких значений типа 0,0001 ;D

Re: Трабл с запросом ?

Добавлено: 14 июл 2003, 12:58
kircom
Подключаещься к БД Первасивовским монитором и смотришь то что какое-то время сесия которая была разорвана крутится на сервере и занимает ресурсы.
P.S. неходите к БД монитором от Pervasivа с SP4
под Win2000 вещает систему (под Novell незнаяю не пробовал)

Re: Трабл с запросом ?

Добавлено: 14 июл 2003, 13:19
DarkGreen
2 Автор: KIR
Дата: 14-07-03 12:58 MSK+2
Хм... Ходим, пока все в норме. Сервер Win 2000 Advanced, ни разу не вис, ни сервер не клиента.
А сессия была корректно разорвана или нет? Если некорректно, то это вполне нормально, первасив по идее, должен раз в какой-нить квант времени посылать клиенту вопрос, типа "ты еще жив?". Если клиент отвечает, то все в норме, если не, то обрывает у себя сессию, освобождает ресурсы и т. д.

Re: Трабл с запросом ?

Добавлено: 14 июл 2003, 13:37
IgorA
То, что после зависания клиента, на сервере какое-то время остается сесия - это нормально(хорошо, что остается не навсегда).

А вот, что с запросом, не понимаю, у меня он выполняется, пробовал заносить в поле значение 0.000000000000001 , то же работает.
Может это проблемы среды, из которой выполняется запрос?
Я запускал запрос в SQL Explorer'е из поставки Delphi и в Первасивавском SQL менеджере.

И еще, я работаю с монитором от Pervasivа с SP4, и проблем не было.

Re: Трабл с запросом ?

Добавлено: 14 июл 2003, 13:45
kircom
Из под Delphi как "ходили" можно поподробнее??/ ???

Re: Трабл с запросом ?

Добавлено: 14 июл 2003, 13:57
IgorA
Саппортом сделал ADF->DDF.
В Pervasive Control Center'е, для сервера сделал "New DataBase".
На клиенте в источниках ODBC, на закладке - пользовательский DSN, добавил новый источник данных.
После этого с созданным источником данных можно работать через BDE.

Re: Трабл с запросом ?

Добавлено: 14 июл 2003, 14:24
kircom
Ну фактически через теже самые ODBC драйвера MS Windows ...

Re: Трабл с запросом ?

Добавлено: 14 июл 2003, 14:45
IgorA
Конечно через ODBC, только эти драйверы Первасивовские(ставятся с клиентом), а не MS.
Для эксперимента можно попробовать выполнить запрос в Контрол центре.
А еще можно поставить ограничение where ... на запрос, что бы в запрос попадала только одна запись, и занести в эту запись значение, которое точно должно конвертироваться, например 123 .