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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 07.11.2009, 13:52   #1
Herly
Форумчанин
 
Регистрация: 07.11.2009
Сообщений: 118
По умолчанию Возникла проблема в программировании SQL запроса с помощью компонента TQuery

Недавно начал осваивать базы данных и появились трудности в создании sql апроса с помощью компонента TQuery.
Просмотрев множество листингов запросов и почитав литературу я написал следующий код
Mpr.Query1.Close;
Mpr.Query1.SQL.Clear;
Mpr.Query1.SQL.Add('Select Fam from Lat.db');
Mpr.Query1.SQL.Add('Where Fam = ''Фамилия''');
Mpr.Query1.SQL.Add('Order By Fam');
Mpr.Query1.Open;
Mpr.DataSource1:=Mpr.Query1.DataSou rce;
Mpr.DBGridOp.DataSource:=Mpr.DataSo urce1;
Здесь Mpr-название формы; Fam-название поля в таблице Paradox; Lat.db-название таблицы; Фамилия-тут поидее я хочу прописать параметр, но пока пишу любую фамилию которая есть в базе, чтобы попробовать.
Проблема заключается в том что после этого запроса выводится изначальная таблица, целиком, хотя по моим понятиям должно выводиться строка базы данных в которой находится данная фамилия.
Подскажите плиз что я не так делаю.
Вложения
Тип файла: rar Пример.rar (4.0 Кб, 9 просмотров)
Если всё откладывать на потом, то потом будет всё.

Последний раз редактировалось Herly; 07.11.2009 в 16:27.
Herly вне форума
Старый 07.11.2009, 14:22   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Давайте-ка не мудрить, а напишем сразу одной строкой (запросик-то маленький):
Код:
Mpr.Query1.SQL.Text:='select fam from lat where fam='+QuotedStr(myfam);
где myfam - фамилия, по котрой вы хотите сделать выборку.
И при чем тут ORDER, когда вы выбираете одну(!) фамилию?

Последний раз редактировалось mihali4; 07.11.2009 в 14:25.
mihali4 вне форума
Старый 07.11.2009, 14:43   #3
Herly
Форумчанин
 
Регистрация: 07.11.2009
Сообщений: 118
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Код:
Mpr.Query1.SQL.Text:='select fam from lat where fam='+QuotedStr(myfam);
.
Скопировав вашу строку результат запроса не изменился, вывелась опять вся таблица.(вместо myfam я написал 'Фамилия')
по поводу Odered BY я наверно действительно зря прописал.
И не моглибы вы пояснить зачем нужно писать QuotedTostr.
Если всё откладывать на потом, то потом будет всё.
Herly вне форума
Старый 07.11.2009, 15:49   #4
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Цитата:
И не моглибы вы пояснить зачем нужно писать QuotedTostr.
Цитата:
function QuotedStr(const S: string): string;
description
Returns the quoted version of a string.
A single quote character (') is inserted at the beginning and end of string S, and each single quote character in the string is repeated.
example

Код:
var s : string;

s:='Delphi''s Pascal';
//ShowMessage returns Delphi's Pascal
s := QuotedStr(s);
//ShowMessage returns 'Delphi''s Pascal'
а по-русски: добавляет апострофы в начало и конец строки
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума
Старый 07.11.2009, 16:00   #5
Herly
Форумчанин
 
Регистрация: 07.11.2009
Сообщений: 118
По умолчанию

Цитата:
Сообщение от ОДИНОЧЕСТВО В СЕТИ Посмотреть сообщение
Код:
var s : string;

s:='Delphi''s Pascal';
//ShowMessage returns Delphi's Pascal
s := QuotedStr(s);
//ShowMessage returns 'Delphi''s Pascal'
а по-русски: добавляет апострофы в начало и конец строки
Так это ясно спс, а по теме поста вы могли-бы что нибудь добавить?
Если всё откладывать на потом, то потом будет всё.
Herly вне форума
Старый 07.11.2009, 16:13   #6
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Цитата:
Так это ясно спс, а по теме поста вы могли-бы что нибудь добавить?
косяк имхо не в этом месте, а где то дальше в коде!
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума
Старый 07.11.2009, 16:14   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Включите расширенный режим редактирования поста и сделайте вложение - вашу таблицу.
Чудес не бывает...
А для начала попробуйте
Mpr.Query1.SQL.Text:='select fam from lat where fam like('+QuotedStr(myfam)+')';
Небось, в таблице забит "Иванов", а вы ищете "иванов", а ?

Последний раз редактировалось mihali4; 07.11.2009 в 16:19.
mihali4 вне форума
Старый 07.11.2009, 16:23   #8
Herly
Форумчанин
 
Регистрация: 07.11.2009
Сообщений: 118
По умолчанию

Так а вот тут касяк возник по ходу движения, я ищу фамилию Бобров к примеру, и вот когда добавляю ваш код и в нём вместо myfam пишу без апострофов Бобров то подчёркивается волнистой красной линией, учитывая что QuotedStr и есть апострафы это немного странно.
Если всё откладывать на потом, то потом будет всё.
Herly вне форума
Старый 07.11.2009, 16:26   #9
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
в нём вместо myfam пишу без апострофов Бобров
Это кто ж вас научил писать строковую переменную без апострофов???
mihali4 вне форума
Старый 07.11.2009, 16:29   #10
Herly
Форумчанин
 
Регистрация: 07.11.2009
Сообщений: 118
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Это кто ж вас научил писать строковую переменную без апострофов???
Да я сам вот сижу учусь(таблицу прикрепил)
Если всё откладывать на потом, то потом будет всё.
Herly вне форума
Закрытая тема


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Delphi] TQuery и реализация запроса. MaGWaY_minsk Помощь студентам 2 12.05.2009 00:31
Возникла проблема при написании чата HelP mar4elo Работа с сетью в Delphi 12 29.11.2008 22:16
Свойство Params компонента TQuery Washington БД в Delphi 3 07.02.2007 12:04