База данных Mysql
Модератор: Модераторы
База данных Mysql
В общем появилась необходимость создания такой вот базы. Поиск информации на эту тему и чтение официальной вики не помогли. Нашел пример Здесь но что то мне кажется там не совсем правильным. Вот и хотелось бы найти здесь Учителя кто возьмет ученика?
Последний раз редактировалось whs 27.04.2010 11:27:38, всего редактировалось 3 раза.
FeodoR писал(а):Привет! Ну а какие проблемы? В принципе в том топике нормально написано. Или есть вопросы касательно именно создания БД?
Могу (если есть желание) поделиться модулем работы с mysql...
Из проблем DBCombobox хочу список в него поместить а появляется только первая запись из 10. Я так понимаю Items список загружать надо как то по другому. Пробовал еще DBLookupComboBox тоже остается пустой.
- FeodoR
- новенький
- Сообщения: 59
- Зарегистрирован: 16.04.2010 12:11:34
- Откуда: MSK, ЮАО
- Контактная информация:
У меня получилось только вот с таким заполнением:
Код: Выделить всё
while not SQLQuery1.EOF do
begin
DBComboBox1.Items.Add(SQLQuery1.FieldByName(DBComboBox1.DataField).Value);
SQLQuery1.Next;
end;
SQLQuery1.First;
DBComboBox1.Items[0]; А как сделать запрос вида чтоб из таблицы вытащить только строки у которых поле category равно news или about?
Код: Выделить всё
("SELECT info, title, id, author, date FROM archive WHERE category='news' or 'about'")- FeodoR
- новенький
- Сообщения: 59
- Зарегистрирован: 16.04.2010 12:11:34
- Откуда: MSK, ЮАО
- Контактная информация:
Можно вот так:
Где-нибудь в интерфейсной секции:
Чтение по запросу:
Как-то так. Если нигде с кавычками не напутал, всё будет.
Где-нибудь в интерфейсной секции:
Код: Выделить всё
const SKav:string=Chr($27);
Чтение по запросу:
Код: Выделить всё
if SQLQuery1.Active then SQLQuery1.Close;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.ADD('SELECT info, title, id, author, date FROM archive WHERE category='+SKav+'news'+SKav+' or category='+SKav+'about'+SKav);
SQLQuery1.Open;
Как-то так. Если нигде с кавычками не напутал, всё будет.
FeodoR писал(а):Если нигде с кавычками не напутал
Используйте параметры, без них отгребете как нить по полной
Ну раз такое дело то не хотелось бы отгрести по полной кстати в той статье в комментариях тоже советуют использовать параметры может увидеть вариант с использованием параметров?
А какие параметры и настройки модуль содержит можно код модуля посмотреть?
А какие параметры и настройки модуль содержит можно код модуля посмотреть?
Код: Выделить всё
SQLQuery1.Close;
//параметры начинаются с двоеточия
SQLQuery1.SQL.Text:='SELECT info, title, id, author, date FROM archive WHERE category = :Param0 or category = :Param1';
//установим типы данных у параметров
SQLQuery1.Params.ParamByName('Param0').DataType:=ftString;
SQLQuery1.Params.ParamByName('Param1').DataType:=ftString;
//Присвоим значения
SQLQuery1.Params.ParamByName('Param0').Value:='news';
SQLQuery1.Params.ParamByName('Param1').Value:='about';
SQLQuery1.Open;
запрос и типы параметров можно сформировать в дизайн-тайм
при формировании SQL с условиями с полями типа дата/время не используя параметры можем получить ошибку на клиентском компьютере, где другой формат даты/времени используется.
Проверено на собственной шкуре
FeodoR писал(а):А при выполнении SQLQuery1.Params.Add/Clear и т.д. работает? Только design-time не удобно.
У меня не заработало, значит не работает.
whs писал(а):У меня не заработало, значит не работает
Все прекрасно работает.
Параметры не нужно добавлять вручную, список формируется из SQL.
Мой пример выше полностью рабочий.
Ну пример да рабочий. Я просто не полностью понял что SQLQuery1.Params.Add/Clear формируется из запроса 
Опять спрошу то на что я так и не нашел ответа есть некое поле называется оно Состав в этом поле перечислены через запятую компоненты Медь Цинк Олово. Так вот я чего-то не пойму как составить запрос чтоб найти и вывести все записи где есть допустим Медь. Я или плохо искал или силами MySQL такое сделать нельзя но скорей первое чем второе. Есть мысль что нужно использовать LIKE я правильно мыслью?
