The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Селект SQL  из perl"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [Проследить за развитием треда]

"Селект SQL  из perl"
Сообщение от Sergey Искать по авторуВ закладки(??) on 27-Сен-04, 18:55  (MSK)
есть  запрос к БД из скрипта на перле .. возвращает нескоько  полей
одно из которых >4096 .. соответственно  эта переменная  урезается  до  4096 ((
SET TEXTSIZE 65536 - сделан  до селекта
Если  селект  через QueryAnalizer  - все  возвращается  в  полном  объеме ..
В чем  может быть косяк?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Селект SQL  из perl"
Сообщение от Асен Тотин emailИскать по авторуВ закладки on 02-Окт-04, 14:50  (MSK)
Привет,

>одно из которых >4096

Т.е. размер поля более 4096 байтов?

Какая версия DBI? Какой модуль DBD:: ? И если не секрет, как выглядит код?

WWell,


  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Селект SQL  из perl"
Сообщение от Sergey Искать по авторуВ закладки(??) on 04-Окт-04, 18:47  (MSK)
да, больше 4096

Запрос через MSSQL::Sqllib

$sql = 'Select name, type, req_text from MY_TABLE where param1 = ' . @_[0] . ' and param2 = '. @_[1]  ;
$param = $connect->sql($sql, SCALAR, SINGLEROW);
($name, $type, $req_text) = split(/$MSSQL::Sqllib::SQLSEP/, $param);

..потом делается ...

print "<TR><TD>", "Примечание", "</TD><TD>", $current -> textarea(-name=>'function', -rows => 4, -columns =>60, - default=>$req_text), "</TD>\n";

и в  форме уже отображается  4096 ((

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Селект SQL  из perl"
Сообщение от Асен Тотин emailИскать по авторуВ закладки on 04-Окт-04, 19:38  (MSK)
Привет,

>..потом делается ...
>print "<TR><TD>", "Примечание", "</TD><TD>", $current -> textarea(-name=>'function', -rows => 4, -columns =>60, - default=>$req_text), "</TD>\n";
>
>и в  форме уже отображается  4096 ((

Гм... глупо, конечмно, но если попробовать не "textarea", а просто "<p>$req_text</p>"?

Еще предложение... Гугл подсказал следующее:

Из: http://www.sommarskog.se/mssql/mssql-dblib.html

DBSETLPACKET
   $status = DBSETLPACKET($packet_size)Sets the packet size for the TDS protocol for connections created with subsequent calls to dblogin or dbopen.

If you do not set the packet size, the default is determined by the server-configuration parameter ``network packet size'', which is 4096 in its default configuration.


  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Селект SQL  из perl"
Сообщение от Sergey Искать по авторуВ закладки(??) on 05-Окт-04, 12:45  (MSK)
Hola!
>Гм... глупо, конечмно, но если попробовать не "textarea", а просто "<p>$req_text</p>"?
>
Да  пробовал..  режется всеравно

>DBSETLPACKET
>   $status = DBSETLPACKET($packet_size)Sets the packet size for the TDS protocol for connections created with subsequent calls to dblogin or open.
>
>If you do not set the packet size, the default is determined by the server-configuration parameter ``network packet size'', which is 4096 in its default configuration

Я  так  понимаю  это касается  только размера пакета данных и  влияет на производительность..не  думаю что влияет на то, какой объем информации передается.. Пиример: скажем  у меня селект 10 полей  по 3кб. тогда  получается что селект должен  порезаться .. но этого ж не происходит..  или я  не совсем хорошо представляю как  это работает )))


>Из: http://www.sommarskog.se/mssql/mssql-dblib.html
>
а вот  на этой  страничке я  еще  кой-чего нашел :

Text/image functions
The functions for inserting and updating text/image columns in MSSQL::DBlib have a different interface from dbwritetext and dbupdatetext in DB-Library.

Notice that by default, DB-Library and SQL Server have a limit on the maximum size of a text/image values you can recieve of mere 4096 bytes. You can use these calls to remove all limits:

   $d->dbsetopt(DBTEXTSIZE, "2147483647");
   $d->dbsetopt(DBTEXTLIMIT, "0");
   $d->dbsqlexec;
   while ($d->dbresults != NO_MORE_RESULTS) {}

попробую ))

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру