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

Вниз

Аргументы имеют неверный тип, выходят за пределы допустимого...   Найти похожие ветки 

 
McLotos ©   (2013-01-14 15:33) [0]

Доброго времени суток, и снова я ловлю СТОП получая ошибку
Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом.
Как я получаю ошибку:
В общем есть клиент. который чтобы подключиться к серверу должен послать логин и пароль а в ответ получить некое число, которое указывает ему что делать дальше

var
 Account : TStringList;
begin
 Account := TStringList.Create;
 Account.CommaText := Socket.ReceiveText; //получаем строку от клиента
if (Account.Values["Login"]<>"") and (Account.Values["Password"]<>"") // вытягиваем оттуда нужные данные
  then
    begin
      log.Lines.Add (Account.Values["Login"] + " + " + Account.Values["Password"]); //показываем админу сервера
       try
          with ADOQuery do
              begin
               ADOQuery.SQL.Clear;
{вытягиваем из БД значение поля access таблицы access}
               ADOQuery.SQL.Add("SELECT level FROM access WHERE (login=:qlogin) and (passw=:qpassw)");
               ADOQuery.Parameters.ParamByName("qlogin").value := Account.Values["Login"];
               ADOQuery.Parameters.ParamByName("qpassw").value := Account.Values["Password"];
ADOQuery.Active:=true;
{где-то до этой строки программа начинает материться}
ShowMessage(IntToStr(RecordCount)); //а затем радостно нам сообщает что в базе есть 1 такой пользователь
 end;
except
on e:Exception do
 end;
end;
end;



 
sniknik ©   (2013-01-14 15:46) [1]

> {где-то до этой строки программа начинает материться}
пошли ее в ответ да и всех делов то.


 
Ega23 ©   (2013-01-14 15:47) [2]

Во-первых, у тебя утечка памяти: ты не разрушаешь Account.
Во-вторых, зачем with ADOQuery?
В-третьих, его надо закрывать, вообще-то.
В-четвёртых: признайся, сам писал код, или спёр у кого-то?


 
sniknik ©   (2013-01-14 15:49) [3]

вот где проблема
on e:Exception do
 end;


 
sniknik ©   (2013-01-14 15:51) [4]

хрень какая то
with ADOQuery do
              begin
               ADOQuery.SQL.Clear;


 
McLotos ©   (2013-01-14 16:32) [5]

sniknik злой ты =)
Ega23
1. Account не разрушаю потому-что он дальше ещё много где используется. это же не весь код, а только проблемная часть
2. Варианты, предложения, идеи?
3. Я просто пробовал оба варианта и через with do и просто с указанием элемента. в моем посте представлен вариант 2in1
Ну хорошо. как вариант я уберу
with ADOQuery do
всё-равно в представленном примере ADOQuery дописано в каждую строку
Вам от этого станет легче понять моя проблему? Думаю нет
4. Вопрос не относится к теме, поэтому отвечать не обязан =)

sniknik почему хрень? читайте выше, я объяснил этот момент


 
sniknik ©   (2013-01-14 16:42) [6]

> sniknik почему хрень?
эксепты прятать нельзя.
with он не просто так, он для чего то... сначала ставить with а после писать так как будто его нет ... "хрень какая то"

> читайте выше, я объяснил этот момент
где? не вижу.

+
если
> //а затем радостно нам сообщает что в базе есть 1 такой пользователь
доходит до этой строки, и таки сообщает (а не перекидывает в ексепт), то ошибка дебагтайма, можно "забить" на нее.


 
sniknik ©   (2013-01-14 16:45) [7]

++
level access могут быть зарезервированными словами. и тогда может быть типа варнинга, а после работает.
поставь в кавычки []


 
sniknik ©   (2013-01-14 16:45) [8]

+++
login


 
McLotos ©   (2013-01-14 16:59) [9]

> поставь в кавычки []
не понял
где?
в какой части кода?


 
Ega23 ©   (2013-01-14 17:14) [10]


> в какой части кода?

Это твой код, или нет?


 
McLotos ©   (2013-01-14 17:32) [11]

Ega23 Ваши сообщения абсолютно не информативны, варианта 2:
- либо Вы продолжаете забивать форум пустыми по смыслу и содержанию сообщениями,
- либо я просто начинаю Вас игнорировать как пустую переменную. Хотя да, следуя Вашему же совету - Пустую переменную нужно разрушать! =)


 
McLotos ©   (2013-01-14 17:33) [12]

+ не "продолжаете", а "прекращаете"
у меня что-то ошибки в логике начинаются


 
sniknik ©   (2013-01-14 17:42) [13]

> абсолютно не информативны
но от них/ответа(реакции ни них) зависит как тебе отвечать.


 
Ega23 ©   (2013-01-14 17:48) [14]


> - либо я просто начинаю Вас игнорировать как пустую переменную.
>  Хотя да, следуя Вашему же совету - Пустую переменную нужно
> разрушать! =)

Есть третий вариант: я просто проигнорирую твою проблему. Точнее, тебе уже всё ответили. Ну а то, что ты не понимаешь ответов - это уже твои проблемы, не так ли?


 
McLotos ©   (2013-01-14 17:50) [15]

Можно отвечать как угодно, я в программировании уже не первый год, просто на delphi перешёл всего 3-4 дня назад, раньше программировал только на php, надоело, захотелось вспомнить то что в колледже проходил когда-то. Тем более delphi мне сейчас кажется технологией для лентяев, потому-что одно дело когда ты пишешь каждую строчку кода в блокноте и знаешь там каждую букву, и совсем другое, когда большая часть кода появляется при движении мышки по экрану.


 
McLotos ©   (2013-01-14 17:52) [16]


>  это уже твои проблемы, не так ли?

Спасибо, Ega23. Вы очень любезны.


 
sniknik ©   (2013-01-14 17:58) [17]

> просто на delphi перешёл всего 3-4 дня назад
а delphi тут и не причем вообще то.


 
McLotos ©   (2013-01-14 18:03) [18]

> а delphi тут и не при чем вообще то.

да? а в чем тогда проблема? почему выскакивает эта ошибка?

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


 
DVM ©   (2013-01-14 18:13) [19]


> McLotos ©   (14.01.13 15:33) 


> Аргументы имеют неверный тип, выходят за пределы допустимого
> диапазона или вступают в конфликт друг с другом.

Поля login и passw в таблице access какой тип имеют? Какую размерность?

Названия login, acces, level я бы все же поменял, от греха, на что нибудь более уникальное.


 
McLotos ©   (2013-01-14 18:35) [20]

id - int(2)
login - varchar(16)
passw - varchar(32)
level - int(2)


 
Игорь Шевченко ©   (2013-01-14 19:17) [21]

http://ln.com.ua/~openxs/articles/smart-questions-ru.html



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

Форум: "Начинающим";
Текущий архив: 2013.09.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.004 c
15-1366182556
AStiK
2013-04-17 11:09
2013.09.29
Win 7 список файлов недавно открытых


2-1357842704
Den
2013-01-10 22:31
2013.09.29
XmlDomDocument в какой строке кода не хватает атрибута.


15-1365930191
Y-
2013-04-14 13:03
2013.09.29
Задачка про кривые


2-1357991481
Теркин
2013-01-12 15:51
2013.09.29
модификация стандартных компонентов


2-1357913717
Guest123
2013-01-11 18:15
2013.09.29
Проектирование БД





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