|
#16
|
|||
|
|||
Вот еще когда открываешь через OpenDialog файл например mklh.dbf из той же папки в которой сохранен проект то выдает вот такую ошибку
"Memo file c:\...mklh.fpt is missing or is invalid", а когда открываешь файл с диска d:\ все нормально файл открывается. И Юрий на ваш код ругается вот так "Type mismatch in exptession" что за несоответствие типа? может быть я с Query намудрил Последний раз редактировалось Andrej-zhe, 30.08.2012 в 15:34. |
#17
|
||||
|
||||
может и намудрил ... мне ж не видно что там написано и где ругается
Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|
#18
|
|||
|
|||
Код:
procedure TForm1.Button1Click(Sender: TObject); var tblSbor: TTable; - может тут. begin Query1.Close; Query1.SQL.Text:='SELECT d.kod, d.name, o.n FROM duh.dbf d, oper.dbf o, oper_ozo.dbf z WHERE d.type||d.subtype||d.kod = o.type||o.subtype||o.kod AND d.type||d.subtype||d.kod = z.type||z.subtype||z.kod'; Query1.Open; if Query1.RecordCount>0 then begin tblSbor.Open; while not Query1.Eof do begin tblSbor.Insert; tblSbor.FieldByName('kod').Value:=Query1.FieldByName('kod').Value; tblSbor.FieldByName('name').Value:=Query1.FieldByName('name').Value; tblSbor.FieldByName('n').Value:=Query1.FieldByName('n').Value; tblSbor.Post; Query1.Next; end; end else ShowMessage('Ни одной записи не найдено'); end; если можно напишите какие настройти надо компаненте ставить. Последний раз редактировалось Admin, 30.08.2012 в 17:20. |
#19
|
||||
|
||||
Цитата:
для простоты лучше создать его самому в дизайне - переименовать соотв - указать с каким файлом работать (Sbor.dbf), ну и драйвер Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Последний раз редактировалось Yurk@, 30.08.2012 в 16:44. |
#20
|
|||
|
|||
Пока ищу как это сделать, но раб. день закончен, продолжу завтра спасибо что помогаете, надеюсь разобраться постепенно с БД.
|
#21
|
|||
|
|||
Создал отдельно файлик sbor.dbf c нужными полями а как его теперь подключить чтобы записать туда то что нам надо.
прошу прощение за мое незнание( или делаю так const cTableSQL = 'CREATE DBF sbor CODEPAGE=1251 (nk C(4), fio C(40), date_ws D(8), dp D(8), dw D(8), name C (170))'; cCopyTable = 'execscript("COPY TO REALTABLE FOX2X")'; такой вопрос а С(4), это типы cgaracter с размерностью поля 4, a D(8) тип дата с размерностью 8 и т.д.? Последний раз редактировалось Andrej-zhe, 31.08.2012 в 11:56. |
#22
|
||||
|
||||
слушай, ну зачем тАкие сложности?
1. создай в DatabaseDesktop свой файлик с нужными полями 2. в дельфе на панели компонентов ткни вкладку BDE - выбери ком-т Table и положи на форму ... переименуй и заполни нужные свойства ... ткни Open для проверки открытия своей таблицы. Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|
#23
|
|||
|
|||
Да все спс открывает с нужными полями, но вот такая ошибка теперь.
и ругается он на этой строке: Код:
Query1.SQL.Text:='SELECT d.kod, d.name, o.n FROM duh.dbf d, oper.dbf o, oper_ozo.dbf z WHERE d.type||d.subtype||d.kod = o.type||o.subtype||o.kod AND d.type||d.subtype||d.kod = z.type||z.subtype||z.kod'; а ошибка "Type mismatch in exptession". и через Open не открываются почему то файлы oper_ozo.dbf и mklh.dbf, но когда их открываешь с диска d все нормально открываютя, перетащил их в папку с .ехе не открываются Последний раз редактировалось Andrej-zhe, 31.08.2012 в 15:05. |
#24
|
||||
|
||||
показывай проэкт
Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|
#25
|
|||
|
|||
Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, ADODB, StdCtrls, Buttons, Grids, DBGrids, Menus, ComCtrls, DBTables; type TForm1 = class(TForm) DBGrid1: TDBGrid; ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; DataSource1: TDataSource; OpenDialog1: TOpenDialog; DateTimePicker1: TDateTimePicker; DateTimePicker2: TDateTimePicker; Label1: TLabel; Label2: TLabel; MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; Button1: TButton; Query1: TQuery; Table1: TTable; procedure N1Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var tblSbor: TTable; begin Query1.Close; Query1.SQL.Text:='SELECT d.kod, d.name, o.n FROM duh.dbf d, oper.dbf o, oper_ozo.dbf z WHERE d.type||d.subtype||d.kod = o.type||o.subtype||o.kod AND d.type||d.subtype||d.kod = z.type||z.subtype||z.kod'; Query1.Open; if Query1.RecordCount>0 then begin tblSbor.Open; while not Query1.Eof do begin tblSbor.Insert; tblSbor.FieldByName('kod').Value:=Query1.FieldByName('kod').Value; tblSbor.FieldByName('name').Value:=Query1.FieldByName('name').Value; tblSbor.FieldByName('n').Value:=Query1.FieldByName('n').Value; tblSbor.Post; Query1.Next; end; end else ShowMessage('Ни одной записи не найдено'); end; procedure TForm1.FormCreate(Sender: TObject); begin OpenDialog1.InitialDir := ExtractFilePath(Application.ExeName); end; procedure TForm1.N1Click(Sender: TObject); begin if OpenDialog1.Execute then begin ADOConnection1.Close; ADOConnection1.ConnectionString := Format('Provider=VFPOLEDB.1;Data Source=%s;' + 'Mode=ReadWrite;Extended Properties="";User ID="";Password="";' +'Mask Password = False; ' + 'Cache Authentication=False;Encrypt Password=False;' + 'Collating Sequence = RUSSIAN; DSN = ""',[ExtractFilePath(OpenDialog1.FileName)]); ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add(Format('select * from %s', [ExtractFileName(OpenDialog1.FileName)])); ADOQuery1.Active := True end; end; procedure TForm1.N3Click(Sender: TObject); begin Close; end; end. |
#26
|
||||
|
||||
Цитата:
Цитата:
Хм... У меня кстати нету даже провайдера такого (VFPOLEDB.1)... |
#27
|
|||
|
|||
Уточню вопрос с полями и отпишусь в понедельник утром. Всем спс что не бросаете нуба.
|
#28
|
|||
|
|||
Уточнил поля type subtype и kod нумерики. Значит типы полей одинаковые, тогда ругается по др причине получается.
|
#29
|
||||
|
||||
Цитата:
|
#30
|
|||
|
|||
Спасибо, а можно как то сравнивать "нумерики" для дальнейшего использования их в том алгоритме что у меня, или надо переводить их в строки?
|