Главная страница
    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.034 c
4-1077187045
_hunter_
2004-02-19 13:37
2004.04.25
Получение информации о железе


14-1080647779
Nick-From
2004-03-30 15:56
2004.04.25
дешевый ксерокс


6-1077806606
serg128
2004-02-26 17:43
2004.04.25
Как отправить одно сообщение на несколько машин с одной


4-1077185604
Игорь Шевченко
2004-02-19 13:13
2004.04.25
Как извлекать ресурсы RT_RCDATA из файлов


1-1081365641
Islander
2004-04-07 23:20
2004.04.25
Перекрыть CustomDrawItem в TreeView





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский