Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Поиск по бд акссес

53K
04 февраля 2010 года
dvtimofei
9 / / 04.02.2010
Есть БД аксес, сейчас поиск и формирование отчета происходит по дате рождения, помогите сделать по ФИО.
Вот часть кода формы поиска:


unit Unit7;

interface

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

type
TForm7 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
ComboBox1: TComboBox;
Button1: TButton;
ADOQuery10: TADOQuery;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form7: TForm7;

implementation
uses main;

{$R *.dfm}

procedure TForm7.Button1Click(Sender: TObject);
var
F: TextFile;
sql:String;
b:Integer;
begin
ADOQuery10.SQL.Clear;
b:=0;
if(Edit1.Text<>'')then
begin
sql:='Data_rogdenie=DateValue("'+Edit1.Text+'")';
b:=1;
end;
if(ComboBox1.Text<>'')then
begin
if(b=1)then
sql:=sql+' AND ';
sql:='Pol="'+ComboBox1.Text+'"';
b:=1;
end;
ADOQuery10.SQL.Add('SELECT Tab_nomer FROM Sotrydnik WHERE '+sql);
try
ADOQuery10.Active:=True;
except
ShowMessage('Произошла исключительная ситуация: Не могу поместить данные! Обратитесь к разработчику программы.');
end;
with Form1 do
begin
AssignFile(F, 'report.htm');
Rewrite(F);
Writeln(F,'<html><head><title>Отчет по сотруднику сотруднику</title><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"></head><body>');
11
04 февраля 2010 года
oxotnik333
2.9K / / 03.08.2007
а что конкретно не можешь? составить точно такой же SQL но по другому полю?
PS: в TADOQuery есть замечательная вещь - параметры... и не надо каждый раз составлять запрос заново.
PSPS: К стати а как этот код работает, если у акцесса свой формат даты (в решетках) ?
53K
04 февраля 2010 года
dvtimofei
9 / / 04.02.2010
Я в DELPHI пока не бум бум,
Если вставляю вместо
sql:='Data_rogdenie=DateValue("'+Edit1.Text+'")';
вот это
sql:=Famili=DateValue("'+Edit1.Text+'")';
ни чего не происходит
6
04 февраля 2010 года
George
4.1K / / 05.01.2007
а зачем Вы фамилию в дату конвертируете? или это круто? :)
 
Код:
sql := 'Famili = ' + QuotedStr(Edit1.Text);
53K
04 февраля 2010 года
dvtimofei
9 / / 04.02.2010
Да спасибо, все работает)))
303
05 февраля 2010 года
makbeth
1.0K / / 25.11.2004
Жора, при всем уважении... но ты выдал говнокод. Я, конечно, понимаю - это всего лишь исправления кода ТС, но ведь это фигня. В таких случаях расово верное решение - параметры TQuery. Тогда и не нужно будет плясок с бубнами вокруг преобразования различных типов в формат, используемый в запросах конкретной БД.
6
05 февраля 2010 года
George
4.1K / / 05.01.2007
ну цель то исправить была :)
а в своих проектах я юзаю параметры. да и не самый говнокодный у меня говнокод :)
6
05 февраля 2010 года
George
4.1K / / 05.01.2007
А вообще то называть мой код говнокодом, это то же самое, что сказать - механическая коробка передач - говно, АКПП форева. ;) Параметры ведь тоже глючить умеют.
303
05 февраля 2010 года
makbeth
1.0K / / 25.11.2004
Да ладно, не обижайся.. :) Дело то не в глюках, а в правильности решения. Кстати, что-то не припоминаю, чтобы у меня параметры глючили.
1
05 февраля 2010 года
kot_
7.3K / / 20.01.2000
Не сорьтесь горяяячие фииинские паааартни. :)
George вполне нормально ответил на заданный вопрос.
Понятно что нужно использовать параметры и т.п. но в ввиду того, как задан вопрос топикстартером - параметры ему могут быть просто не под силу.
[COLOR="Red"]Автору замечание - еще раз подобным образом оформите код - получите нарушение[/COLOR]
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог