Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 03.12.2012
Сообщений: 12

База DBF и Query

20.12.2012, 09:20. Показов 4046. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожулуйста! Программка, которая добавляет DBF файлик(KADRY_.DBF) в DBGrid, в нем столбцов штук 50. Нужен фильтр не могу сделать: нужно вывести все строки, в которых нет даты в столбце R069 + вывести столбец RFA(фамилия), при нажатии "Кнопка"

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ADODB, DB, Grids, DBGrids, StdCtrls;
 
type
  TForm1 = class(TForm)
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    ADOConnection1: TADOConnection;
    ADOTable1: TADOTable;
    ADOQuery1: TADOQuery;
    ListBox1: TListBox;
    ComboBox1: TComboBox;
    Label1: TLabel;
    Button1: TButton;
    procedure ListBox1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  AppFolderPath: String;
 
 
implementation
 
{$R *.dfm}
 
 
procedure TForm1.FormCreate(Sender: TObject);
 var fs:TSearchRec;
 begin
  Label1.Caption:='Aua?aou aaco';
  AppFolderPath:=copy(ExtractFilePath(Application.ExeName),1,length(ExtractFilePath(Application.ExeName)))+'BD';
//  ComboBox1.ItemIndex:=0;
  if FindFirst(AppFolderPath+'\*.dbf', faAnyFile, fs)=0 then
  repeat
     ListBox1.AddItem(fs.Name,nil);
  until FindNext(fs)<>0;
  FindClose(fs);
end;
 
procedure TForm1.ListBox1Click(Sender: TObject);
var
i: Integer;
begin
ADOTable1.Active:= false;
ADOConnection1.Connected:=false;
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source="' +AppFolderPath + '";Extended Properties="DBASE IV;";"';
    ADOConnection1.LoginPrompt:=False;
    ADOConnection1.Mode:=cmRead;
    ADOConnection1.Connected:=True;
    DataSource1.DataSet:=ADOTable1;
    ComboBox1.Items.Clear;
  ADOConnection1.Connected:=True;
    ADOTable1.TableName:=ListBox1.Items[ListBox1.ItemIndex];
    ADOTable1.Active:=True;
   ComboBox1.ItemIndex:=ADOTable1.FieldCount;
    for i:= 1 to (ADOTable1.FieldCount - 1) do
    //While not IntToStr(ADOTable1.FieldCount) do
    begin
       ComboBox1.Items.Add(ADOTable1.Fields[i].FieldName);
    //   ADOQuery1.Next;
    end;
    DBGrid1.DataSource:=DataSource1;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  ADOTable1.Active:=False;
  ADOQuery1.SQL.Text:= 'Select RFA From KADRY_,DBF Where R069 is null';
  ADOQuery1.Active:= True;
end;
 
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.12.2012, 09:20
Ответы с готовыми решениями:

база DBF в delphi
Народ хелп. как сделать в делфи чтобы запрос отображадся в другом окне, есть база которая просто открывается в окне DBGrid. после открытия...

Как работать с Unidac — база DBF?
Delphi 10 (RAD Studio 10.1 Berlin), Unidac 6. Подскажите как работать с базой DBF? Пожалуйста, приведите примеры кода: 1) создания...

База DBF работа с SQL запросами
Доброго времени суток! плиз помагите разобраться, никак не получается сделать простой запрос. Имеется несколько баз данных с расширением...

11
 Аватар для albor
504 / 106 / 16
Регистрация: 01.12.2011
Сообщений: 399
20.12.2012, 11:39
Цитата Сообщение от spawn-1212 Посмотреть сообщение
Программка, которая добавляет DBF файлик(KADRY_.DBF) в DBGrid, в нем столбцов штук 50..
Ну у вас и запросы, - сказала база данных.. Саму ДБФ-ку можно увидеть?
0
0 / 0 / 0
Регистрация: 03.12.2012
Сообщений: 12
20.12.2012, 12:19  [ТС]
Цитата Сообщение от albor Посмотреть сообщение
Ну у вас и запросы, - сказала база данных.. Саму ДБФ-ку можно увидеть?
Ну вот пример
Исходник надо?
Вложения
Тип файла: rar KADRY_.rar (758 байт, 40 просмотров)
0
 Аватар для albor
504 / 106 / 16
Регистрация: 01.12.2011
Сообщений: 399
20.12.2012, 12:40
Цитата Сообщение от spawn-1212 Посмотреть сообщение
Ну вот пример..
Исправьте две ошибки и все заработает:

Delphi
1
2
3
4
5
6
ADOConnection1.ConnectionString:='Provider=MSDASQL.1;Persist Security Info=False;Data Source=dBASE Files;Mode=Read;Extended Properties="DSN=dBASE Files;DefaultDir=X:\Projects\Delphi7\FreeWork\Kadry;DriverId=533;MaxBufferSize=2048;PageTimeout=5;"';
 
...
 
 
 ADOQuery1.SQL.Text:= 'Select RFA From KADRY_.DBF Where R069 is null';  //должна быть точка перед DBF
0
0 / 0 / 0
Регистрация: 03.12.2012
Сообщений: 12
20.12.2012, 13:27  [ТС]
Цитата Сообщение от albor Посмотреть сообщение
Исправьте две ошибки и все заработает:

Delphi
1
2
3
4
5
6
ADOConnection1.ConnectionString:='Provider=MSDASQL.1;Persist Security Info=False;Data Source=dBASE Files;Mode=Read;Extended Properties="DSN=dBASE Files;DefaultDir=X:\Projects\Delphi7\FreeWork\Kadry;DriverId=533;MaxBufferSize=2048;PageTimeout=5;"';
 
...
 
 
 ADOQuery1.SQL.Text:= 'Select RFA From KADRY_.DBF Where R069 is null';  //должна быть точка перед DBF
С точкой касяк исправил - спасибо.
А вот по первой строке не понимаю?
Просто тупо вставил в код ругается на след. идущую строку,
попытался изменить provaider ADOConnection вручную ругается на провайдер, помоги пжл
0
 Аватар для albor
504 / 106 / 16
Регистрация: 01.12.2011
Сообщений: 399
20.12.2012, 13:34
Цитата Сообщение от spawn-1212 Посмотреть сообщение
А вот по первой строке не понимаю?..
Там нужно правильно путь к данным прописать. Это я не углядел.

Вместо DefaultDir=X:\Projects\Delphi7\FreeWork\ Kadry написать путь как у Вас.

Или сделать это через диалог настройки. Еще проще. Нажать на кнопку редактирования справа от свойства ConnectionString ADOConnection1. Тогда в коде ничего писать не нужно. И эту строку убрать.
0
0 / 0 / 0
Регистрация: 03.12.2012
Сообщений: 12
20.12.2012, 13:59  [ТС]
Цитата Сообщение от albor Посмотреть сообщение
Вместо DefaultDir=X:\Projects\Delphi7\FreeWork\ Kadry написать путь как у Вас.
Какой путь написать?

Цитата Сообщение от albor Посмотреть сообщение
...сделать это через диалог настройки
пробую не выходит, какието настройки видимо не указываю какието настройки
Миниатюры
База DBF и Query  
0
 Аватар для albor
504 / 106 / 16
Регистрация: 01.12.2011
Сообщений: 399
20.12.2012, 14:34
Цитата Сообщение от spawn-1212 Посмотреть сообщение
пробую не выходит, какието настройки видимо не указываю какието настройки
О-па! Так у вас ваще некуда подключить дбф-файл. Там должно быть:
Миниатюры
База DBF и Query   База DBF и Query  
0
0 / 0 / 0
Регистрация: 03.12.2012
Сообщений: 12
20.12.2012, 14:40  [ТС]
Цитата Сообщение от albor Посмотреть сообщение
О-па! Так у вас ваще некуда подключить дбф-файл. Там должно быть:
Делаю как на первом и на втором скрине, проверку соеденения проходит нормально.
Далее запускаю проект и при выборе самой БД вываливается таже ошибка что и в предыдущем моем посте
???
Что делаю не так?
0
 Аватар для albor
504 / 106 / 16
Регистрация: 01.12.2011
Сообщений: 399
20.12.2012, 15:23
Цитата Сообщение от spawn-1212 Посмотреть сообщение
Делаю как на первом и на втором скрине, проверку соеденения проходит нормально.
Далее запускаю проект и при выборе самой БД вываливается таже ошибка что и в предыдущем моем посте
???
Что делаю не так?
Сроку ADOConnection1.ConnectionString убрали из кода?
Если да, то остается проверить путь к дбф таблицам. Возможно, вы их не там ищете при попытке открыть.

Delphi
1
2
3
4
5
6
7
procedure TForm1.ListBox1Click(Sender: TObject);
var
  i: Integer;
begin
  ADOTable1.Active:= false;
  ADOConnection1.Connected:=false;
  //ADOConnection1.ConnectionString:=
0
0 / 0 / 0
Регистрация: 03.12.2012
Сообщений: 12
21.12.2012, 05:35  [ТС]
Цитата Сообщение от albor Посмотреть сообщение
Сроку ADOConnection1.ConnectionString убрали из кода?
Да убрал.
У меня в ConnectionString у компонента ADOConnection1 при создании конструктором получается такая строка:
Code
1
Provider=MSDASQL.1;Persist Security Info=False;Data Source=dBASE Files
А у Вас
Code
1
Provider=MSDASQL.1;Persist Security Info=False;Data Source=dBASE Files;Mode=Read;Extended Properties="DSN=dBASE Files;DefaultDir=X:\Projects\Delphi7\FreeWork\Kadry;DriverId=533;MaxBufferSize=2048;PageTimeout=5
Вопрос: Что за путь указывать? (это который в п.3 Введите начальный каталог на закладке "Соеденение"?)
И откуда в вашей строке другие атрубиту? Руками дописывали?
0
 Аватар для albor
504 / 106 / 16
Регистрация: 01.12.2011
Сообщений: 399
21.12.2012, 10:41
Цитата Сообщение от spawn-1212 Посмотреть сообщение
Вопрос: Что за путь указывать? (это который в п.3 Введите начальный каталог на закладке "Соеденение"?)
И откуда в вашей строке другие атрубиту? Руками дописывали?
Нет. Ничего не дописывал. Но начальный путь прописал именно там. Остальное само приползло.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.12.2012, 10:41
Помогаю со студенческими работами здесь

Есть база *.dbf, как ее перегнать в текстовый файл?
У меня есть база на *.dbf (в ней 7 полей ) и в конце дня мне нужно сформировать файл текстовый и скопировать в него содержимое моей базы...

База на *.dbf и в ней 5 полей мне нужно очистить ее. Не получается.
Я выполняю в цикле Table1.First; while not Table1.Eof do begin Table1.Delete; Table1.Next;Но когда просматриваю базу в фаре после...

База DBF в лазарус
У меня возник, наверное легкий вопрос, но нигде не нашел явного ответа на него. Подскажите, как добавить запись в таблицу dbf, но не с...

Импорт dbf в Power Query
Добрый вечер! Скажите как импортировать dbf в Power Query? ODBC не в какую, пишет ошибку драйвера. Как и где скачать, установить нужные...

Удаление записи из dbf-файла в ADO. Query too complex
Наблюдается странная вещь...Записи добавляются в файл дбф но не удаляются... появляется ран тайм еррор и говорит Query too complex и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru