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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 17.08.2015, 20:02   #1
Evil_Net
Пользователь
 
Регистрация: 04.08.2015
Сообщений: 48
Печаль Acces - вывод определенного значения

Добрый вечер! Прошу Вашей помощи, так как новичок в работе с БД. Сколько не искал, ни где не смог прочитать, как из таблицы вывести определенное значение.

Приведу пример для наглядности: имеется база 'test.mdb' в ней таблица 'Tab1' с значениями id, names, color

подключаюсь к базе через ADOConnection1, с помощью ADOQuery1 делаю запрос и хочу вывести в Edit1 значение 'names' с id=1

Код:
ADOQuery1.Sql.Clear;
ADOQuery1.Sql.Add('SELECT * from Tab1 where id=1');
ADOQuery1.Open;
Edit1.Text := ADOQuery1.FieldByName('names').AsString;
ADOQuery1.Close;
И на будущее, как добавлять новую строку с записями? Раньше писал скрипты на php + MySQL, поэтому как делать запросы могу вспомнить.

Код:
ADOQuery1.Sql.Clear;
ADOQuery1.Sql.Add('INSERT INTO Tab1 VALUES (null, "Ball", "White")');
ADOQuery1.Execute;
ADOQuery1.Close;
Evil_Net вне форума
Старый 17.08.2015, 21:24   #2
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
с помощью ADOQuery1 делаю запрос и хочу вывести в Edit1
http://programmersforum.ru/showthread.php?t=279142
http://programmersforum.ru/showthread.php?t=277392
http://programmersforum.ru/showthread.php?t=277420
xxbesoxx вне форума
Старый 18.08.2015, 17:53   #3
Evil_Net
Пользователь
 
Регистрация: 04.08.2015
Сообщений: 48
По умолчанию

По ссылкам увидел только фильтрацию, но она мне не нужна, я точно знаю какие мне нужны значения, но как их получить так и не понял
Evil_Net вне форума
Старый 18.08.2015, 19:51   #4
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
я точно знаю какие мне нужны значения, но как их получить так и не понял
Я точно не ПОНЯЛ что вам нужно .! гадать не умею пишите боле подробно
xxbesoxx вне форума
Старый 19.08.2015, 11:24   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
подключаюсь к базе через ADOConnection1, с помощью ADOQuery1 делаю запрос и хочу вывести в Edit1 значение 'names' с id=1
понятно.

Вы приводите код:
Цитата:
Код:
ADOQuery1.Sql.Clear;
ADOQuery1.Sql.Add('SELECT * from Tab1 where id=1');
ADOQuery1.Open;
Edit1.Text := ADOQuery1.FieldByName('names').AsString;
ADOQuery1.Close;
Насколько я понимаю, он должен сделать то, что Вам нужно.
Он не работает? Как это проявляется?
Ошибка возникает? Или что?
Serge_Bliznykov вне форума
Старый 19.08.2015, 16:09   #6
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
понятно.

Вы приводите код:

Насколько я понимаю, он должен сделать то, что Вам нужно.
Он не работает? Как это проявляется?
Ошибка возникает? Или что?
Я прошу прошения , что ему нужно и что будет работать ?
Цитата:
Код:
ADOQuery1.Sql.Clear;
ADOQuery1.Sql.Add('SELECT * from Tab1 where id=1'); // запросе он говорить что эму нужно запись из Tab1 где id=1 почему он пишет where id=1 если ему нужно другой запись тоже ?
ADOQuery1.Open; // открывает да
Edit1.Text := ADOQuery1.FieldByName('names').AsSt ring; // получает из поля names значения в Edit1 да
ADOQuery1.Close; // А здесь почему он закрывать ADOQuery1 ???
От куда то копировал это код и не старается разбирать нет... Получается "невнимательный копипастит"

Последний раз редактировалось xxbesoxx; 19.08.2015 в 16:19.
xxbesoxx вне форума
Старый 19.08.2015, 16:21   #7
Evil_Net
Пользователь
 
Регистрация: 04.08.2015
Сообщений: 48
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
понятно.

Вы приводите код:

Насколько я понимаю, он должен сделать то, что Вам нужно.
Он не работает? Как это проявляется?
Ошибка возникает? Или что?
К моему удивлению, данный код сработал в новом проекте, почему в старом работал так и не разобрался, хотя был уверен в его правильности.
Код:
ADOQuery1.Sql.Clear;
ADOQuery1.Sql.Add('SELECT * from Tab1 where id=1');
ADOQuery1.Open;
Edit1.Text := ADOQuery1.FieldByName('names').AsString;
ADOQuery1.Close;
Как добавлять и удалять записи разобрался, надеюсь правильно.

Код:
ADOQuery1.Sql.Clear;
ADOQuery1.Sql.Add('insert into Tab1 values (2,''Ball'',"White")');
ADOQuery1.ExecSQL;
ADOQuery1.Close;
Код:
ADOQuery1.Sql.Clear;
ADOQuery1.Sql.Add('delete from Tab1 where id=2');
ADOQuery1.ExecSQL;
ADOQuery1.Close;
Как вписывать значения из edit и переменной вместо "Ball" или "White" я понял:
Код:
ADOQuery1.Sql.Add('insert into Tab1 values (2,'+quotedstr(edit1.text)+','+quotedstr(n)+')');
Не получается разобраться что указывать в первом параметре при добавлении записи (в данном примере вместо '2'), чтобы срабатывал AUTO_INCREMENT (Тип счетчик), в php решалось вот так 'null', в delphi ошибку выдает.

Какие компоненты нужны для работы с базой MySQL, принцип работы будет тот же?

И что нужно для работы с базой (файлом), название не знаю, в заголовке написано SQLite format 3
Evil_Net вне форума
Старый 19.08.2015, 16:27   #8
Evil_Net
Пользователь
 
Регистрация: 04.08.2015
Сообщений: 48
По умолчанию

Цитата:
Сообщение от xxbesoxx Посмотреть сообщение
Я прошу прошения , что ему нужно и что будет работать ?

От куда то копировал это код и не старается разбирать нет... Получается "невнимательный копипастит"
where id=1 потому что мне нужна запись из Tab1 где id=1 разве не правильно? дальше обращаюсь ADOQuery1.FieldByName('names').AsSt ring и получаю значение names, могу и другое получить (color), почему в старом проекте не работало так и не понял.

Разве ADOQuery1 закрывать после запросов не надо?
Evil_Net вне форума
Старый 19.08.2015, 16:51   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
чтобы срабатывал AUTO_INCREMENT
Код:
insert into Tab1 (Names,Color) values ('Bal','White')
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума
Старый 19.08.2015, 17:04   #10
Evil_Net
Пользователь
 
Регистрация: 04.08.2015
Сообщений: 48
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Код:
insert into Tab1 (Names,Color) values ('Bal','White')
пробовал, ошибка синтаксиса в инструкции INSERT INTO
Evil_Net вне форума
Закрытая тема


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить значения после определенного символа Banjo Microsoft Office Excel 17 04.04.2017 14:06
вывод данных при выборе определенного значения из раскрывающегося списка Андрей79 PHP 4 04.03.2012 21:58
Получение значения при вводе определенного значения armanmal Microsoft Office Excel 6 21.11.2011 17:30
Результат до определенного значения и не выше. mato Общие вопросы C/C++ 8 04.12.2009 16:07
Вывод сообщения на экран при выборе из списка определенного значения MaGistR Microsoft Office Excel 1 31.01.2008 09:10