Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Закрытая тема
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 15.03.2009, 11:50
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Фу-ты черт, в одной строке столько ошибок понаделал. Там еще и звездочки нет после селекта.
Цитата:
DataModule2.ADOQuery1.SQL.Text := 'Select * from Исполнители where [Дисциплина №1] LIKE :Value1)';
  #17  
Старый 15.03.2009, 13:46
joomler joomler вне форума
Новичок
 
Регистрация: 11.10.2008
Сообщения: 88
Репутация: 10
По умолчанию

да все поставил и * и скобку то я сразу заметил вроде все как надо но...
Ошибку не выдает но и не ищет ни чего(((((((
может можно как то по другому можно поиск организовать
  #18  
Старый 15.03.2009, 15:10
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Скорее всего ошибка в передаваемых данных.
Вот рабочий примерчик:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, StdCtrls, Grids, DBGrids;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    DBGrid1: TDBGrid;
    Label1: TLabel;
    Label2: TLabel;
    dsQuery: TDataSource;
    Query: TADOQuery;
    AppDB: TADOConnection;
    Queryid: TAutoIncField;
    QueryПреподаватель: TWideStringField;
    QueryДисциплина1: TWideStringField;
    QueryДисциплина2: TWideStringField;
    QueryДисциплина3: TWideStringField;
    Edit3: TEdit;
    Label3: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure EditChange(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure Tform1.EditChange(Sender: TObject);
begin
 Query.Close;
 Query.SQL.Text := 'select * from Исполнители where [Преподаватель] like :Value1 and [Дисциплина №1] like :Value2 and [Дисциплина №2] like :Value3';
 Query.Parameters.ParamValues['Value1'] := Edit3.Text + '%';
 Query.Parameters.ParamValues['Value2'] := Edit1.Text + '%';
 Query.Parameters.ParamValues['Value3'] := Edit2.Text + '%';
 Query.Open;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 AppDB.Open;
 EditChange(Sender);
end;
end.

object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 302
  ClientWidth = 635
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  OnCreate = FormCreate
  PixelsPerInch = 96
  TextHeight = 13
  object Label1: TLabel
    Left = 201
    Top = 33
    Width = 67
    Height = 13
    Caption = #1044#1080#1089#1094#1080#1087#1083#1080#1085#1072'1'
  end
  object Label2: TLabel
    Left = 325
    Top = 33
    Width = 67
    Height = 13
    Caption = #1044#1080#1089#1094#1080#1087#1083#1080#1085#1072'2'
  end
  object Label3: TLabel
    Left = 88
    Top = 33
    Width = 80
    Height = 13
    Caption = #1055#1088#1077#1087#1086#1076#1072#1074#1072#1090#1077#1083#1100
  end
  object Edit1: TEdit
    Left = 201
    Top = 48
    Width = 118
    Height = 21
    TabOrder = 1
    OnChange = EditChange
  end
  object Edit2: TEdit
    Left = 325
    Top = 48
    Width = 121
    Height = 21
    TabOrder = 2
    OnChange = EditChange
  end
  object DBGrid1: TDBGrid
    Left = 8
    Top = 75
    Width = 619
    Height = 120
    DataSource = dsQuery
    TabOrder = 3
    TitleFont.Charset = DEFAULT_CHARSET
    TitleFont.Color = clWindowText
    TitleFont.Height = -11
    TitleFont.Name = 'Tahoma'
    TitleFont.Style = []
  end
  object Edit3: TEdit
    Left = 88
    Top = 48
    Width = 112
    Height = 21
    TabOrder = 0
    OnChange = EditChange
  end
  object dsQuery: TDataSource
    DataSet = Query
    Left = 528
    Top = 192
  end
  object Query: TADOQuery
    Active = True
    Connection = AppDB
    CursorType = ctStatic
    Parameters = <>
    SQL.Strings = (
      'select * from '#1048#1089#1087#1086#1083#1085#1080#1090#1077#1083#1080)
    Left = 528
    Top = 144
    object Queryid: TAutoIncField
      DisplayWidth = 12
      FieldName = 'id'
      ReadOnly = True
    end
    object QueryПреподаватель: TWideStringField
      DisplayWidth = 23
      FieldName = #1055#1088#1077#1087#1086#1076#1072#1074#1072#1090#1077#1083#1100
      Size = 255
    end
    object QueryДисциплина1: TWideStringField
      DisplayWidth = 23
      FieldName = #1044#1080#1089#1094#1080#1087#1083#1080#1085#1072' '#8470'1'
      Size = 255
    end
    object QueryДисциплина2: TWideStringField
      DisplayWidth = 24
      FieldName = #1044#1080#1089#1094#1080#1087#1083#1080#1085#1072' '#8470'2'
      Size = 255
    end
    object QueryДисциплина3: TWideStringField
      DisplayWidth = 29
      FieldName = #1044#1080#1089#1094#1080#1087#1083#1080#1085#1072' '#8470'3'
      Size = 255
    end
  end
  object AppDB: TADOConnection
    Connected = True
    ConnectionString = 
      'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\'#1061#1086#1079#1103#1080#1085'\Doc' +
      'uments\Demo.mdb;Persist Security Info=False'
    LoginPrompt = False
    Mode = cmShareDenyNone
    Provider = 'Microsoft.Jet.OLEDB.4.0'
    Left = 528
    Top = 96
  end
end

Последний раз редактировалось Admin, 15.03.2009 в 16:02.
  #19  
Старый 15.03.2009, 15:47
joomler joomler вне форума
Новичок
 
Регистрация: 11.10.2008
Сообщения: 88
Репутация: 10
По умолчанию

Вот так работает, но ищет только одно поле:
Код:
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
DataModule2.ADOQuery1.Active:=false;
DataModule2.ADOQuery1.SQL.Clear;
DataModule2.ADOQuery1.SQL.Add('SELECT*');
DataModule2.ADOQuery1.SQL.Add('FROM Исполнители');
DataModule2.ADOQuery1.SQL.Add('WHERE [Дисциплина №1] LIKE'''+Edit1.Text+'''');
DataModule2.ADOQuery1.Active:=true;
Form4.ShowModal;

Последний раз редактировалось Admin, 15.03.2009 в 16:02.
  #20  
Старый 15.03.2009, 16:01
Аватар для Admin
Admin Admin вне форума
Администратор
 
Регистрация: 03.10.2005
Адрес: Россия, Москва
Сообщения: 1,564
Версия Delphi: Delphi 7
Репутация: выкл
По умолчанию Оформление кода

To joomler, Страдалецъ: для размещения кода пользуемся тегом [code], а не цитатой.
  #21  
Старый 15.03.2009, 16:05
joomler joomler вне форума
Новичок
 
Регистрация: 11.10.2008
Сообщения: 88
Репутация: 10
По умолчанию

Цитата:
Сообщение от Admin
To joomler, Страдалецъ: для размещения кода пользуемся тегом [code], а не цитатой.

Ага понятно)))) а Вы помочь мне с поиском не можете?
  #22  
Старый 15.03.2009, 16:43
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Цитата:
Сообщение от joomler
Ага понятно)))) а Вы помочь мне с поиском не можете?
Немножко запутался, это сообщение мне или Админу?
Вы бы уже выложили свою БД что-ли.
  #23  
Старый 18.03.2009, 11:38
joomler joomler вне форума
Новичок
 
Регистрация: 11.10.2008
Сообщения: 88
Репутация: 10
По умолчанию

а может вот по этому примеру, что Вы мне написали:
Код:
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
DataModule2.ADOQuery1.Close;
DataModule2.ADOQuery1.SQL.Text := 'Select* from Исполнители where [Дисциплина №1] LIKE:Value1 and [Дисциплина №2] LIKE:Value2 and [Дисциплина №3] LIKE:Value3';
DataModule2.ADOQuery1.Parameters.ParamValues['Value1'] := Edit1.Text;
DataModule2.ADOQuery1.Parameters.ParamValues['Value2'] := Edit1.Text;
DataModule2.ADOQuery1.Parameters.ParamValues['Value3'] := Edit1.Text;
DataModule2.ADOQuery1.Open;
Form4.ShowModal;
end;
программа находит эти данные просто вывод их не правильный? по этому я и вижу пустое окно?
  #24  
Старый 18.03.2009, 23:08
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Попробуйте поставить точку останова на строке:
Код:
DataModule2.ADOQuery1.Open;
и выложите сюда содержимое свойства: DataModule2.ADOQuery1.SQL.Text
Может тогда я пойму в чем проблема.
  #25  
Старый 19.03.2009, 00:03
joomler joomler вне форума
Новичок
 
Регистрация: 11.10.2008
Сообщения: 88
Репутация: 10
Хорошо

Ребят я разобрался ))))) вот как у меня это получилось:
Код:
DataModule2.ADOQuery1.Active:=false;
DataModule2.ADOQuery1.SQL.Clear;
DataModule2.ADOQuery1.SQL.Add('SELECT*');
DataModule2.ADOQuery1.SQL.Add('FROM Исполнители');
DataModule2.ADOQuery1.SQL.Add('WhERE [Дисциплина №1] LIKE:Value1 or [Дисциплина №2]LIKE:Value2 or [Дисциплина №3]LIKE:Value3 or [Дисциплина №4]LIKE:Value4 or [Дисциплина №5]LIKE:Value5 or [Дисциплина №6]LIKE:Value6 or [Дисциплина №7]LIKE:Value7 or [Дисциплина №8]LIKE:Value8');
DataModule2.ADOQuery1.Parameters.ParamValues['Value1'] := Edit1.Text;
DataModule2.ADOQuery1.Parameters.ParamValues['Value2'] := Edit1.Text;
DataModule2.ADOQuery1.Parameters.ParamValues['Value3'] := Edit1.Text;
DataModule2.ADOQuery1.Parameters.ParamValues['Value4'] := Edit1.Text;
DataModule2.ADOQuery1.Parameters.ParamValues['Value5'] := Edit1.Text;
DataModule2.ADOQuery1.Parameters.ParamValues['Value6'] := Edit1.Text;
DataModule2.ADOQuery1.Parameters.ParamValues['Value7'] := Edit1.Text;
DataModule2.ADOQuery1.Parameters.ParamValues['Value8'] := Edit1.Text;
DataModule2.ADOQuery1.Active:=true;
Form4.ShowModal;

Спасибо Вам за помощь. Только у меня еще вопрос: полей получилось 8 а нужно 10 , но при 10 выдает ошибку мол больше 255 символов что то типа того
как с этим бороться?
  #26  
Старый 19.03.2009, 11:10
Grunch Grunch вне форума
Новичок
 
Регистрация: 08.04.2008
Адрес: Краснодар
Сообщения: 52
Репутация: 10
По умолчанию

Разбейте последнюю строку с Where на несколько строк:
Код:
DataModule2.ADOQuery1.SQL.Add('WhERE [Дисциплина №1] LIKE:Value1');
DataModule2.ADOQuery1.SQL.Add('or [Дисциплина №2]LIKE:Value2');
и т.д.
  #27  
Старый 19.03.2009, 12:42
joomler joomler вне форума
Новичок
 
Регистрация: 11.10.2008
Сообщения: 88
Репутация: 10
По умолчанию

Хорошо попробую сегодня и отпишусь)
  #28  
Старый 19.03.2009, 14:06
joomler joomler вне форума
Новичок
 
Регистрация: 11.10.2008
Сообщения: 88
Репутация: 10
По умолчанию

Да все работает спасибо)))) Всем спасибо большое очень мне помогли
  #29  
Старый 19.03.2009, 23:07
joomler joomler вне форума
Новичок
 
Регистрация: 11.10.2008
Сообщения: 88
Репутация: 10
По умолчанию

Админы Закройте пожалуйста тему, проблема уже решена)))
спасибо всем!!!
Закрытая тема


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:57.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter