Форум: "Начинающим";
Текущий архив: 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