Поиск в Базе Данных (.db) на Delphi
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Поиск в Базе Данных (.db) на Delphi - 2006-03-22 15:30:17
|
|
|
Zorro_13
Сообщений: 3
Оценки: 0
Присоединился: 2006-02-15 21:53:23
|
Привет! У меня такой вопрос! У меня курсовая Телефонный справочник и я сделал таблицу Table 1.db где заголовки Фамилия Имя Адрес и Телефон. В Administrator BDE сделал базу данных "Телефонный справочник". Сделал кнопку "Поиск" ! А теперь вопрос а как сделать поиск по моей базе, я уже искал много где примеров, но не получается! Вот текст моей программы(если он поможет):
Я попробывал сделать с помощью SQL : В свойствах Query: DataBaseName: Телефонный справочник DataSource: DataSource1 Name: Query1 Active: False
Когда Active ставлю True выдает ошибку: Query1: No SQL statement available.
А если оставить False, то при поиске выдает всё время, что "Нет Записей"!
Я поменял заголовки в Таблице на Английские! Но всё равно не работает! В SQL не хочет ставиться Active: True; выдает туже ошибку что и раньше. При компиляции всё запускается, нажимаю кнопку Поиск открывается окно поиска, пишу фамилию и нажимаю ОК и оно выдает вот такую ошибку: "Project Project1.exe raised exception class EdatabaseError with massage ''DataSource1: Circular datalinks are not allowed''. Process stopped. Use Step or Run to continue."
Нажимаю ОК выделяет строчку: "DataSource1.DataSet:=Query1"
Я не знаю может что-то в SQL надо прописать т.к. я там ничего не писал! С SQL я делал только это: Создал Query. Поставил:Action: False (на True не ставится) DatabaseName: STABDART1 DataSource: DataSource1 Name: Query1 (стандартно не менял)
Ну и текст программы (на всякий случай):
unit Unit1;
interface
uses windоws, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, DBGrids, Db, DBTables;
type TForm1 = class(TForm) DataSource1: TDataSource; Table1: TTable; DBGrid1: TDBGrid; Button1: TButton; Button2: TButton; Query1: TQuery; procedure Button2Click(Sender: TоЬjесt); procedure Button1Click(Sender: TоЬjесt); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button2Click(Sender: TоЬjесt); begin Form1.Close; end;
procedure TForm1.Button1Click(Sender: TоЬjесt); var s: string[50]; begin s := InputЬох(''Поиск'',''Введите фамилию и нажмите OK'',''''); if s <> '''' then begin with form1.Query1 do begin Close; SQL.Clear; SQL.Add(''SELECT Famil, Name, Telefon''); SQL.Add(''FROM ":STANDARD1:Table 1.db"''); SQL.Add(''WHERE''); SQL.Add(''(Famil = "''+ s + ''")''); SQL.Add(''ORDER BY Name, Famil''); Open; end; if Query1.RecordCount <> 0 then DataSource1.DataSet:=Query1 else begin ShowMessage(''Нет записей.''); DataSource1.DataSet:=Table1; end;
Помогите пожалуйста! Заранее спасибо!
|
|
|
Поиск в Базе Данных (.db) на Delphi - 2006-03-22 15:43:27
|
|
|
Python
Сообщений: 4964
Оценки: 0
Присоединился: 2005-12-14 08:32:13
|
Zorro_13, ваще тЫ зря старался. Тут народ ленивЫй, больше двух строчек, читать не любит.
|
|
|
Поиск в Базе Данных (.db) на Delphi - 2006-03-29 00:15:06
|
|
|
BAZ
Сообщений: 16
Оценки: 0
Присоединился: 2005-02-04 20:33:32
|
если тебе нужен только вывыод записей по определенному имени, тогда забей на query, юзай table, в свойство filter заносишь нужное имя, например
table1.filter:='имя='+''''+'Вася'+'''';
ну или естественно 'имя='+'+edit1.text+', где edit1.text, поле в которое вводишь нужное имя.
и ставишь table1.filtered:=true;
фсе
|
|
|
|
|