Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Вниз

Меняются типы параметров в TQuery - почему и как лечить??   Найти похожие ветки 

 
dna aka Pahan   (2004-03-27 18:38) [0]

Добрый день, уважаемые мастера!
Пишу прогу по работе с базой MS SQL Server на Delphi7.
Для вставки и модификации записей использую TQuery.
Проблема заключается в следующем: параметрам, передаваемым в запрос ставлю типы "Integer" и "String". После перезапуска дельфей и открытию программы эти типы сами выставляются в "Shortint" и "OleStr" соответственно.
Причем, если до этого все работало нормально, после работать перестает и приходится заново все выставлять вручную.

Очень хотелось-бы узнать ваше мнение по этому поводу.
Заранее благодарен.


 
KSergey ©   (2004-03-28 09:17) [1]

Мнение такое: вы нас обманываете. Или что-то недоговариваете.


 
dna aka Pahan   (2004-03-28 15:06) [2]

Отнюдь.
При перезапуске для TParam[i] сохраняется значение поля DataType: ftString и ftInteger.

Но для поля Value -> Type значение сбрасывается:
из Integer в Shortint и
из String в OleStr соответственно.
Причем это в D7.

В D5 немного по другому:
из Integer в Byte, а String сохраняется нормально.

А может вообще этими параметрами не пользоваться?? Не наблюдалость ли у вас глюков при работе с ними?


 
KSergey ©   (2004-03-28 15:35) [3]

Это что еще за TParam[i]??
Глюков не помню. Правда типы, пожалуй, никогда не проверял. но если бы скосились типы - всяко бы ошибки посыпались...

А кусок конкретного кода - можно? Только коротенько, но чтобы на нем этот глюк наблюдался (обязательно проверьте!)


 
dna aka Pahan   (2004-03-28 17:44) [4]

Я имел ввиду для Query.Params[i].

Обнаружил, что данные глюки работе не мешают, видимо для типа Variant это не критично. (например через Byte вроде нормально передаются значения больше 255).

А если желаете проверить, достаточно кинуть на форму TQuery, в SQL написать запрос с параметром. Для параметра установите в Value -> Type тип Integer. Потом сохранить и переоткрыть проект.
Тип изменится (по крайней мере так происходит в моих D5 и D7).


 
dna aka Pahan   (2004-03-28 18:21) [5]

Это первый мой "относительно" большой проект, работающий с БД, удивляюсь нестабильности работы: постоянно что-то слетает (причем не по исключению от сервера БД, а по нарушению доступа) Самое главное не пойму в чем причина. Работаю исключительно с базой, никакой записи в память, указатели не использую, ничего не освобождаю.
Так же часто бывают "зависания" при обновлении данных (курсор меняется crSQLWait и в и прога виснет) Таблицы не блокирую. Использую только единичные вставки, никаких циклов.

В нескольких TQuery использую не запрос, а процедуру, которая в зависимости от параметров возвращает определенный набор данных.  Хотя она работает нормально... Может здесь собака зарыта?

Хотелось-бы узнать возможные причины таких глюков.
(А может дело во мне, но все-же...)


 
KSergey ©   (2004-03-29 09:16) [6]

>  [4] dna aka Pahan   (28.03.04 17:44)
> А если желаете проверить, достаточно кинуть на форму TQuery,
> в SQL написать запрос с параметром. Для параметра установите
> в Value -> Type тип Integer. Потом сохранить и переоткрыть
> проект.

Даже проверять не буду. Это враки, извините. Ни в одном проекте такого не наблюдал.

Единственное что приходит на ум: а в Query свойство Active прямо при разработке установлено в True?
Есть подозрение, что что вы неверно устанавливаете типы, а прога при коннекте к серверу проставляет нужные типы. Не знаю, может и так, но вообще-то я такого не наблюдал...


 
Reindeer Moss Eater ©   (2004-03-29 09:25) [7]

TParam.DataType

Indicates the type of field whose value the parameter represents.

property DataType: TFieldType;

Description

DataType is set automatically when a value is assigned to the parameter.


 
dna aka Pahan   (2004-03-29 20:27) [8]

2 KSergey:
>Даже проверять не буду. Это враки, извините. Ни в одном проекте такого не наблюдал.

Ваше утверждение ничем не обосновано. Конечно, легче сказать "враки", чем проверить и самому убедиться в обратном.

А с Query все в порядке, это абсолютно точно.

2 Reindeer Moss Eater:
Я говорил про Value -> Type, а не про DataType, в Object Inspector это два разных поля.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.038 c
3-1080725511
dolmat
2004-03-31 13:31
2004.04.25
Столбец типа boolean в Ib


14-1081079832
Иван Бездомный
2004-04-04 15:57
2004.04.25
Дам ссылку, прочитайте что-нибудь(в смысле откройте что-то..


3-1080587672
clickmaker
2004-03-29 23:14
2004.04.25
ADOConnection time out при попытке создания >2 соединений


11-1064430678
miek
2003-09-24 23:11
2004.04.25
Кладову: утечка памяти в KOL


3-1080391582
Karlson
2004-03-27 15:46
2004.04.25
ВЫзов метода DBGrid1CellClick из любого места программы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский