Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.02.2013, 20:26   #1
ULR
Пользователь
 
Аватар для ULR
 
Регистрация: 26.09.2012
Сообщений: 30
По умолчанию Как присвоить переменной в delphi значение поля из таблицы в SQL

Здравствуйте! Помогите пожалуйста нужно присвоить переменной s типа string значение поля, которое является результатом запроса SQL и имеет (содержимое поля) тип char. В строчке, где присваиваю s выдает ошибку, может, если знаете, подскажите как правильно это написать?
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
n:integer;
s:string;
ADOQuery1: TADOQuery;
begin
 n:=strtoint(edit1.text);
 ADOQuery1.Close;
 ADOQuery1.SQL.Clear;
 ADOQuery1.SQL.Add('SELECT marshrut FROM Table_1 WHERE adr=n and b=false');
 ADOQuery1.Open;
 s:=FieldByName('marshrut').AsString;
end;
ULR вне форума Ответить с цитированием
Старый 02.02.2013, 20:32   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
s:=ADOQuery1.FieldByName('marshrut').AsString;
ADOQuery1: TADOQuery; зачем? Создайте его в дизайне, строку соединения в нем или ADOConnection настройте
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 02.02.2013 в 20:34.
Аватар вне форума Ответить с цитированием
Старый 02.02.2013, 20:34   #3
ULR
Пользователь
 
Аватар для ULR
 
Регистрация: 26.09.2012
Сообщений: 30
По умолчанию

понятно) спасибо!
ULR вне форума Ответить с цитированием
Старый 02.02.2013, 20:55   #4
ULR
Пользователь
 
Аватар для ULR
 
Регистрация: 26.09.2012
Сообщений: 30
По умолчанию

скажите пожалуйста, если не сложно, что значит эта ошибка?
Access violation at address 05бблабла. Read of address 05бблабла
ULR вне форума Ответить с цитированием
Старый 02.02.2013, 21:37   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Значит ты пытаешся работать с переменной, которая обращается в запрещенную ячейку памяти. Обычно это бывает из-за неправильного создания объектов.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.02.2013, 09:46   #6
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

И других косяков вал.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
n:integer;
s:string;
ADOQuery1: TADOQuery;
begin
 n:=strtoint(edit1.text);
 ADOQuery1.Close;
 ADOQuery1.SQL.Clear;
 ADOQuery1.SQL.Add('SELECT marshrut FROM Table_1 WHERE adr=n and b=false');
 ADOQuery1.Open;
 s:=FieldByName('marshrut').AsString;
end;
в часть where так из дельфи кода не передать данные - либо делайте сборную строку 'блабла'+ строковая_переменная + ' ещё бла' либо используйте механизм параметров в запросе - гоогле "adoquery parameters"
Непонятно, чей филдбайнейм - он так-то должен принадлежать адоквере, и вообще строка бессмысленна - результат операции остаётся в локальной переменной s и больше никуда не используется, по уму его ж надо куда-то выводить.
Предлагаю примерно так (написано прямо тут без проверки):
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
n:integer;
s:string;
ADOQuery1: TADOQuery;
begin
if trystrtoint(edit1.text, n) then 
begin
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('SELECT marshrut FROM Table_1 WHERE adr=:n and :b=false');
  ADOQuery1.ParamByName('n').Value := n;
  ADOQuery1.ParamByName('b').Value := b;
  ADOQuery1.Open;
  if ADOQuery1.RecordCpunt > 0 then
    Memo.add(ADOQuery1.FieldByName('marshrut').AsString);
end;
end;

Последний раз редактировалось phomm; 03.02.2013 в 09:48.
phomm вне форума Ответить с цитированием
Старый 05.02.2013, 21:33   #7
ULR
Пользователь
 
Аватар для ULR
 
Регистрация: 26.09.2012
Сообщений: 30
По умолчанию

Спасибо вам за помощь!
ULR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как в Delphi присвоить полю DBEdit целочисленное значение поля из DBText (как правильно )? ГОСЕАН Помощь студентам 0 10.01.2012 06:12
Сравнение переменной и значение поля таблицы. Solvinder Помощь студентам 0 16.01.2011 15:00
присвоить переменной значение поля в последней записи таблицы KaimNotark БД в Delphi 1 03.02.2010 07:21
Как переменной присвоить данные из текстового поля формы? kitten2 Microsoft Office Excel 2 08.04.2009 05:43
присвоить переменной целого типа значение поля key полученное в результате выполнения SQL запроса Worms БД в Delphi 5 10.01.2008 21:07