Dbf ფაილი დააკავშირეთ c პროგრამას. როგორ გავხსნათ DBF ფაილი: უმარტივესი გადაწყვეტილებები

დღეს, ალბათ, არავინ არ უნდა თქვას, რომ ხშირად ბევრ მომხმარებელს წააწყდება .dbf გაფართოების მქონე ფაილები. ყველაზე სამწუხარო ის არის, რომ Windows– ში Microsoft Office– ით დაყენებულიც კი ამ ტიპის ფაილი არ ასოცირდება არცერთ პროგრამასთან. ჩვენ გვაქვს, ახლა შევეცდებით გაერკვნენ. ამავდროულად, ვნახოთ, როგორ შეგიძლიათ შექმნათ გაფართოების ასოციაცია შემდგომი პერიოდისთვის ავტომატური ამოცნობა მონაცემები და სასურველი ფაილის გახსნა.

DBF ფორმატი: აღწერა

სინამდვილეში, ამ ტიპის ფაილის გაფართოებაზე გამოყენებული მოკლედ, უკვე შეგვიძლია დავასკვნათ, რომ ეს არის მონაცემთა ბაზა. ეს გარკვეულწილად სპეციფიკურია, რადგან ასეთ ფაილებს ჩვეულებრივ აქვთ გაფართოება

ამ შემთხვევაში, ჩვენ გვაქვს კიდევ ერთი, რომელიც, მიუხედავად მისი სპეციფიკისა, აღიარებულია მრავალი პროგრამით, რომლებიც მხარს უჭერენ ამ ტიპის ინფორმაციასთან მუშაობას. ეს შეიძლება იყოს იგივე Excel ან Access, რომელიც შედის Microsoft Office მთავარ პაკეტში, ან ნებისმიერი სხვა საოფისე პროგრამა მესამე მხარის დეველოპერებისგან.

როგორ გავხსნათ DBF როგორც სტანდარტი

სინამდვილეში, თუ ამ ტიპის ფაილს მოულოდნელად წააწყდებით (მასზე არსებულ "Explorer" - ში ხატი კი არ არის გამოყენებული), პანიკა არ უნდა დაგემართოთ. Excel- ის გამოყენებით მისი გახსნა საკმაოდ ელემენტარულია, ვინაიდან მასში დაცულია მთელი ლოგიკური სტრუქტურა და გათვალისწინებულია იგივე და გამოყენების შესაძლებლობა. სტანდარტული სისტემა ძებნა

მას შემდეგ, რაც არცერთი პროგრამა არ ასოცირდება თავად ფაილს სტანდარტული ვერსიით, არსებობს ორი გზა. რეკომენდირებულია, ვთქვათ, უბრალოდ აწარმოებს excel პროგრამა ან Access, და შემდეგ გამოიყენეთ სტანდარტული ფაილის ღია მენიუ ან Ctrl + O კლავიშების კომბინაცია. ამასთან, მენიუში, რომელიც გამოჩნდება ფაილის ტიპის ველში, უნდა მიუთითოთ "ყველა ფაილი" (და არა "მშობლიური" ფორმატი) და შემდეგ აირჩიეთ სასურველი ფაილი. დარწმუნებული იყავით, რომ ნებისმიერი ცხრილების პროგრამა უპრობლემოდ ცნობს მონაცემთა ამ ტიპს.

როგორც უკვე გასაგებია, DBF ფაილის გახსნის პრობლემა, ჩვენს შემთხვევაში, მხოლოდ საოფისე სტანდარტული პროგრამის სახელმძღვანელო რეჟიმში გამოყენებას უკავშირდება. როგორც უკვე ნათელია, ეს მეთოდი ყოველთვის მოსახერხებელი არ არის და გარკვეულ დროს მოითხოვს.

დაკავშირებული პროგრამები

ახლა მოდით ვნახოთ თვით DBF ფაილი. როგორ გავხსნათ სტანდარტული სტანდარტული საოფისე პროგრამების გამოყენების გარეშე? დიახ, იგივე პროგრამები, რომლებიც შედის მსგავს პროგრამულ პროდუქტებში.

მაგალითად, ეს შეიძლება იყოს იგივე Open Office, Lotus და ა.შ. პრინციპში, აქ დიდი განსხვავება არ არის, რადგან მნიშვნელოვანია მხოლოდ ის, რომ გამოყენებულ პროგრამას შეუძლია მუშაობა ცხრილ ელექტრონულ მონაცემებთან. Კითხვა dBF ფორმატში ყველა შემთხვევაში ზუსტად იგივე ხდება. სხვათა შორის, ეს არ არის დამოკიდებული საოფისე პაკეტის შემქმნელზე, ვინაიდან ყველას აქვს ამ ტიპის მონაცემთა მხარდაჭერა, მათ შორის, თუნდაც Oracle– ის პლატფორმები.

შეცვალეთ ნაგულისხმევი ღია პარამეტრები

ახლა ვნახოთ, როგორ გავხსნათ DBF ფაილები, რომ ავტომატური რეჟიმი იყოს გამოყენებული. უმარტივეს შემთხვევაში, ეს კეთდება ქვემენიუდან, რომელსაც ეწოდება ჩვეულებრივი "Explorer" - ის ფაილზე თაგუნას დაჭერით, სადაც არჩეულია ბრძანება "Open with ...".

ცალკეული შემთხვევისთვის გამოიყენება ჩამონათვალში მითითებული ერთ-ერთი პროგრამა. იმისათვის, რომ თქვენს ტვინს კვლავ არ მოაწყოთ თაღლითობა DBF ფაილების გახსნის შესახებ, შეგიძლიათ უბრალოდ მიუთითოთ შერჩეული პროგრამა, შემდეგ კი ბოლოში დააყენოთ "ჩიტი" ხაზის საპირისპიროდ "გამოიყენეთ ამ ტიპის ყველა ფაილისთვის". მომავალში იგივე Excel (თუ ის ნაგულისხმევ პროგრამად არის არჩეული) ამ ტიპის ფაილს გახსნის ჩვეულებრივი ორმაგი დაწკაპუნებით.

თავისთავად ცხადია, რომ ამის ნაცვლად excel პროგრამები შეგიძლიათ აირჩიოთ იგივე Access ან სხვა პროგრამები, რომლებსაც შეუძლიათ ამ ტიპის მონაცემების ამოცნობა და გახსნა. საქმე აქ არ არის. მთავარია მონაცემთა ბაზის ავტომატური გახსნა. კარგად, რა უნდა ვიმუშაოთ ამ თვალსაზრისით პროგრამული უზრუნველყოფა, ეს არის კომპიუტერული სისტემის თითოეული მომხმარებლის ბიზნესი.

რა არის დედააზრი?

შეჯამება, ამის თქმა ღირს საუკეთესო ვარიანტი ამ ტიპის ფაილების გახსნისას, რა თქმა უნდა, საოფისე პაკეტი მაიკროსოფტის კორპორაციიდან, ვინაიდან ის არის ყველაზე გავრცელებული მთელ მსოფლიოში. მართალია, არაფერია ცუდი იმაში, რომ მომხმარებელი, რომელიც არ იყენებს Microsoft– ის პროდუქტებს, ამ ტიპის მონაცემებს გახსნის ნებისმიერ სხვა პროგრამაში.

როგორც უკვე ნათელია ზემოთქმულიდან, ცხრილების რედაქტორები იმყოფებიან თითქმის ყველა ამჟამად ცნობილ პაკეტში. ისინი ერთმანეთისგან მხოლოდ სახელწოდებით შეიძლება განსხვავდებოდნენ და, რა თქმა უნდა, არა ფუნქციური წყობით, რომელიც, როგორც წესი, ყველგან ერთნაირია, იშვიათი გამონაკლისის გარდა.

სხვა საკითხებთან ერთად, შესაბამისად, შეგიძლიათ გამოიყენოთ მრავალი განვითარების ინსტრუმენტი, პროგრამირების საკმაოდ დიდი რაოდენობით გამოყენებით. იმავე პლატფორმაზე, რომელიც მხარს უჭერს SQL სერვერების შექმნასა და ოპტიმიზაციას, ასეთი ფაილები იხსნება, როგორც ამბობენ, ერთ წამში. გახსნისას მათ საკმაოდ სპეციფიკური სახე ექნებათ, რაც გარკვეულწილად არაჩვეულებრივია ჩვეულებრივი მომხმარებლისთვის. ამასთან, საეჭვოა, რომ მომხმარებელთა უმეტესობა გამოიყენოს ასეთი პროფესიული განვითარების ინსტრუმენტები და შემოიფარგლება მხოლოდ სტანდარტული პროგრამული უზრუნველყოფით.

შეიძლება ამ კოდს დაეხმაროს:

VB ფუნქცია, რომელიც MS Access– ში უნდა ჩასვათ, საკმაოდ მარტივია და ძირითადად, TransferDatabase მეთოდს უწოდებს DSN– ს (მიუთითებს წყაროს მონაცემთა ბაზაზე), წყაროს ცხრილის სახელსა და სამიზნე ცხრილის სახელზე. კოდი ასე გამოიყურება:

საჯარო ფუნქციის იმპორტი (dsnName როგორც სიმებიანი, sourceTableName როგორც სიმებიანი, targetTableName როგორც სიმებიანი) ”თუ მაგიდა უკვე არსებობს, წაშალეთ იგი. შეცდომის შესახებ GoTo CopyTable DoCmd.DeleteObject acTable, targetTableName CopyTable: DoCmd.TransferDatabase _ acImport, _ "ODBC Database", _ "ODBC; DSN \u003d" + dsnName, _ acTable, _ sourceTableName, _ targetTableName End

შემდეგ კი C # კოდი:

ობიექტის წვდომა Object \u003d null; ცადე (accessObject \u003d Activator.CreateInstance (Type.GetTypeFromProgID ("Access.Application")); "AccessDbase.mdb")); , "წყაროს ცხრილის სახელი", "სამიზნე ცხრილის სახელი")); ჩვენება ("კოპირებამ წარმატებით მიაღწია.");) დაჭერა (გამონაკლისი ex) (სტრიქონის შეტყობინება \u003d ex.Message; ხოლო (ex.InnerException! \u003d Null) (ex \u003d ex.InnerException; გაგზავნა + \u003d "\\ r \\ n - - \\ r \\ n "+ ex.Message;) MessageBox.Show (გაგზავნა);) საბოლოოდ (if (accessObject! \u003d null) (System.Runtime.InteropServ Ices.Marshal.ReleaseComObject (accessObject); accessObject \u003d null; ))

VBA– ს შეცვლა ACLink– ის წასაკითხად და არა acImport– მა უნდა დაუშვას კავშირი.

კომენტარების რედაქტირება

მე ვერ დავეხმარები C # - ს, მაგრამ აქ მოცემულია რამდენიმე VBScript, რომელიც აკავშირებს ცხრილს ერთი MDB– დან მეორეში.

StrLinkFile \u003d "C: \\ Docs \\ Link.mdb" strAccessFile \u003d "C: \\ Docs \\ LTD.mdb" "ბმულის შექმნა ..." უცნობია cn \u003d CreateObject ("ADODB.Connection") cn. გახსენით "პროვაიდერი \u003d Microsoft. Jet.OLEDB.4.0; " & _ "მონაცემთა წყარო \u003d" & strAccessFile & ";" & _ "მუდმივი უსაფრთხოების ინფორმაცია \u003d არასწორი" Set adoCat \u003d CreateObject ("ADOX.Catalog") მითითებული adoCat.ActiveConnection \u003d cn მითითებული adoTbl \u003d CreateObject ("ADOX.Table") მითითებული adoTbl.ParentCatalog \u003d adoCat adoTbl.Name \u003d "LinkTable" adoTbl.properties ("Jet OLEDB: Link Datasource") \u003d strLinkFile adoTbl.properties ("Jet OLEDB: Link Provider String") \u003d "MS Access" adoTbl.properties ("Jet OLEDB: Remote Table Name") \u003d "Table1" adoTbl .პროფესიები ("Jet OLEDB: ბმულის შექმნა") \u003d მართალია "ცხრილების დამატება ცხრილების კოლექციაში" adoCat.Tables.Ando adoTbl

ყველას კარგი დღე, ძვირფასო ბლოგის მკითხველს. დღევანდელ სტატიაში ვისაუბრებ DBF ფაილებზე წვდომის შესახებ (ცხრილები) სხვადასხვა გზები... ასეთი პრობლემის წინაშე აღმოვჩნდი, როდესაც FoxPro DBF ცხრილებზე წვდომა დამჭირდა. მე BDE- ს საშუალებით ვცადე, არ გამომივიდა, მხოლოდ Paradox მაგიდებზე (dbf), საბოლოოდ გადავწყვიტე TDBF კომპონენტის საშუალებით გამეცადა - ასევე აღმოჩნდა წარუმატებელი. ძველმოდური გზით გადავწყვიტე ADO– ს საშუალებით დამეკავშირებინა და ყველაფერი საათის მსგავსად მიდიოდა.

ამიტომ, ამ სტატიაში მე გაჩვენებთ, თუ როგორ შეგიძლიათ დაუკავშირდეთ DBF ცხრილებს სამი გზით:

  • BDE– ს გამოყენება - FoxPro ცხრილებისთვის ამ ვარიანტმა არ იმუშავა ჩემთვის
  • ADO - FoxPro მაგიდები კარგად გაიხსნა
  • TDBF კომპონენტის დახმარებით - კარგად ხსნის პარადოქსის ცხრილებს სხვადასხვა კოდირებით ან dBase- ით.

სიმართლე გითხრათ, მე ვერ ვიტან BDE- ს, მაგრამ ასეთ მაგიდებთან მუშაობა მომიწია და პირველი ვარიანტი, რომლის საშუალებითაც მათთან დაკავშირება მინდოდა, იყო BDE- ს გამოყენება, რაც, პრინციპში, მე გავაკეთე, ანუ მე შევძელი მაგიდების სიის აღება, რამაც აღფრთოვანებული ვიყავი და მეგონა, რომ ყველაფერი გაგრძელდებოდა, როგორც მოსალოდნელი იყო, მაგრამ ეს ასე არ იყო. როდესაც რაღაც მაგიდასთან დაკავშირება ვცადე, შეცდომა მომცეს, მსგავსია:

მე შევეცადე დამეყენებინა როგორც BDE ადმინისტრატორში, ასევე დაკავშირებისას, მაგრამ არაფერი გამომივიდა. მაგრამ ამ გზით, მე მშვენივრად დავუკავშირდი DBF ცხრილებს - Paradox, მაგალითად dBase.

ამიტომ, ჩვენ დავაყენებთ შემდეგ კომპონენტებს ფორმაზე BDE ჩანართიდან:

  • TTable ან TQuery
  • სურვილისამებრ, შეგიძლიათ TDataSource და TDbGrid

შემდეგ, TDataBase კომპონენტის DatabaseName თვისებაში, დააყენეთ მონაცემთა ბაზის სახელი, მე დავწერე MyDB და იმავე კომპონენტის DriverName თვისებაში, ჩამოსაშლელი სიიდან ავირჩიე STANDART. ჩვენ LoginPromt თვისება დავაყენეთ False, რადგან ჩვენს მაგიდებზე შესვლა და პაროლი არ არის. Params თვისებაში ჩვენ დავაყენეთ კავშირის პარამეტრები, მე მივუთითე მხოლოდ ჩვენი ცხრილების გზა:

Ასევე შეგიძლიათ ორჯერ დააწკაპუნეთ დააწკაპუნეთ TDataBase კომპონენტზე და დააკონფიგურირეთ საჭირო კავშირი და მიუთითეთ Connected თვისება True, შედეგად, უნდა მოხდეს ცხრილებთან კავშირი, შეცდომების გარეშე. ეს ყველაფერი, გადადით TTable კომპონენტზე, სადაც DatabaseName თვისებაში ვადგენთ ჩვენი მონაცემთა ბაზის სახელს, ანუ MyDB. TableType თვისებაში ვირჩევთ ცხრილების ტიპს, მე მივუთითე ttDBase და TableName თვისებაში ავირჩიეთ ცხრილის სახელი, შემდეგ კი აქტიური თვისება ვაყენეთ True. ყველაფერი მშვენივრად მაკავშირებს მე, მაგიდაც შესანიშნავად აჩვენებს.

მაგრამ ეს ვარიანტი არ გამომივიდა FoxPro ცხრილებთან, როგორც ზემოთ აღვნიშნე. ამიტომ, ჩემი პრობლემის გადასაჭრელად, ADO ტექნოლოგიის გამოყენება გადავწყვიტე. ამიტომ, ADO ჩანართიდან მე დავაინსტალირე შემდეგი კომპონენტები:

  • TADOC კავშირი
  • TADOQuery ან TADOTable
  • სურვილისამებრ, შეგიძლიათ დააინსტალიროთ TDataSource და TDBGrid

შემდეგ, ჩვენ უბრალოდ უნდა შევქმნათ კავშირი, რომელიც გავაკეთეთ MS Access მონაცემთა ბაზისთვის, ის განსხვავდება იმაში, რომ ჩვენ ვირჩევთ მონაცემთა სხვა პროვაიდერს, კერძოდ Microsoft Visual FoxPro ODBC. ეს არის ის, შემდეგ ჩვენ მივუთითებთ კოდირებას და გზას ცხრილებისკენ. თუ ეს არის FoxPro ცხრილი, მაშინ საქაღალდეში უნდა შეიცავდეს ფაილს, რომელშიც მოცემულია ყველა ცხრილი, გაფართოება * .dbc. ანუ, TADOCOnnection კომპონენტის კავშირის სტრიქონი შემდეგნაირად გამოიყურება:

ჩვენ ვაერთებთ TADOConnection კომპონენტს TADOTable ან TADOQuery- ით და ვმუშაობთ ჩვენს საჭირო ცხრილებთან.

კიდევ ერთი ვარიანტია მუშაობა dbf ფორმატის ცხრილებთან TDBF კომპონენტის გამოყენებით, რომელსაც მე ვიყენებ პროექტში. სიმართლე გითხრათ, მე მინდა უარი თქვას მასზე, ეს უბრალოდ კარგად მუშაობს კოდირებით. მე არ გეტყვით მასთან მუშაობას, მაგრამ მაგალითად დატოვეთ ბმული.

შეიძლება ამ კოდს დაეხმაროს:

VB ფუნქცია, რომელიც MS Access– ში უნდა ჩასვათ, საკმაოდ მარტივია და ძირითადად მოუწოდებს TransferDatabase მეთოდს, გადასცემს მას DSN (მიუთითებს წყაროს მონაცემთა ბაზაზე), წყაროს ცხრილის სახელს და სამიზნე ცხრილის სახელს. კოდი ასე გამოიყურება:

საჯარო ფუნქციის იმპორტი (dsnName როგორც სიმებიანი, sourceTableName როგორც სიმებიანი, targetTableName როგორც სიმებიანი) ”თუ მაგიდა უკვე არსებობს, წაშალეთ იგი. შეცდომის შესახებ GoTo CopyTable DoCmd.DeleteObject acTable, targetTableName CopyTable: DoCmd.TransferDatabase _ acImport, _ "ODBC Database", _ "ODBC; DSN \u003d" + dsnName, _ acTable, _ sourceTableName, _ targetTableName End

შემდეგ კი C # კოდი:

ობიექტის წვდომა Object \u003d null; ცადე (accessObject \u003d Activator.CreateInstance (Type.GetTypeFromProgID ("Access.Application")); "AccessDbase.mdb")); , "წყაროს ცხრილის სახელი", "სამიზნე ცხრილის სახელი")); ჩვენება ("კოპირებამ წარმატებით მიაღწია.");) დაჭერა (გამონაკლისი ex) (სტრიქონის შეტყობინება \u003d ex.Message; ხოლო (ex.InnerException! \u003d Null) (ex \u003d ex.InnerException; გაგზავნა + \u003d "\\ r \\ n - - \\ r \\ n "+ ex.Message;) MessageBox.Show (გაგზავნა);) საბოლოოდ (if (accessObject! \u003d null) (System.Runtime.InteropServ Ices.Marshal.ReleaseComObject (accessObject); accessObject \u003d null; ))

VBA– ს შეცვლა ACLink– ის წასაკითხად და არა acImport– მა უნდა დაუშვას კავშირი.

კომენტარების რედაქტირება

მე ვერ დაგეხმარებით, მაგრამ აქ მოცემულია რამდენიმე VBScript, რომელიც მაგიდას უკავშირებს ერთი MDB– დან მეორეში.

StrLinkFile \u003d "C: \\ Docs \\ Link.mdb" strAccessFile \u003d "C: \\ Docs \\ LTD.mdb" "ბმულის შექმნა ..." უცნობია cn \u003d CreateObject ("ADODB.Connection") cn. გახსენით "პროვაიდერი \u003d Microsoft. Jet.OLEDB.4.0; " & _ "მონაცემთა წყარო \u003d" & strAccessFile & ";" & _ "მუდმივი უსაფრთხოების ინფორმაცია \u003d არასწორი" Set adoCat \u003d CreateObject ("ADOX.Catalog") მითითებული adoCat.ActiveConnection \u003d cn მითითებული adoTbl \u003d CreateObject ("ADOX.Table") მითითებული adoTbl.ParentCatalog \u003d adoCat adoTbl.Name \u003d "LinkTable" adoTbl.properties ("Jet OLEDB: Link Datasource") \u003d strLinkFile adoTbl.properties ("Jet OLEDB: Link Provider String") \u003d "MS Access" adoTbl.properties ("Jet OLEDB: Remote Table Name") \u003d "Table1" adoTbl .პროფესიები ("Jet OLEDB: ბმულის შექმნა") \u003d მართალია "ცხრილების დამატება ცხრილების კოლექციაში" adoCat.Tables.Ando adoTbl

DBF არის მონაცემთა შენახვის ფართო ფორმატი, რომელიც გასული საუკუნის 80-იან წლებში გამოჩნდა. ფორმატი პირველად გამოიყენეს DBMS- ის dBase ოჯახში. DBase– ის პოპულარობისა და ფართო გამოყენების გამო შეიქმნა მრავალი dBase მსგავსი პროგრამული პროდუქტი, რომელსაც ერთობლივად xBase ეწოდება. ფორმატის მნიშვნელოვანი ასაკის მიუხედავად, ის დღესაც ფართოდ გამოიყენება. ამ სტატიაში განხილულია DBC– სთან მუშაობის გზები 1C: Enterprise– დან.

1C: საწარმო იყენებს სპეციალურ პროგრამულ ობიექტს, xBase, DBF ფორმატის ფაილებთან სამუშაოდ (dBase III ვერსია). ამ ობიექტთან მუშაობა, როგორც წესი, მარტივია.

ყურადღება!

DBF ფაილებთან მუშაობისას გახსოვდეთ, რომ ფაილის სახელი უნდა აკმაყოფილებდეს 8.3 შეზღუდვას.

ყურადღება!

XBase ობიექტი ხელმისაწვდომია როგორც კლიენტის, ასევე სერვერული მხრიდან. თითოეული კონკრეტული პრობლემის გადაჭრისას უნდა იფიქროთ კლიენტ-სერვერის ურთიერთქმედებაზე.

DBF ფაილის კითხვა

მონაცემთა წაკითხვა DBF ფაილიდან ხორციელდება რამდენიმე თანმიმდევრული ეტაპით:

  1. XBase ობიექტის შექმნა;
  2. ფაილის გახსნა;
  3. ფაილის ყველა სტრიქონის თანმიმდევრული ჩამოთვლა და კითხვის ველის მნიშვნელობები;
  4. ფაილის დახურვა.
DBF \u003d ახალი XBase; DBF OpenFile ("D: \\ MyFile.dbf"); // ეტაპი 2. ფაილის გახსნა სიმართლის ციკლამდე // ეტაპი 3. ფაილის ხაზების გადახვევა ანგარიში (DBF. NAME); თუ არა DBP. შემდეგი () შემდეგ // პოზიცია შემდეგ ჩანაწერზე Გაუქმება; Დაასრულე თუ; ციკლის დასასრული; DBF CloseFile (); // ნაბიჯი 4. ფაილის დახურვა

შეგიძლიათ გამოიყენოთ ოდნავ შეცვლილი ალგორითმი ფაილის სტრიქონებზე განმეორების მიზნით:

ჯერ არ არის DBP. ბოლოს () მარყუჟის ანგარიში (DBF. NAME); DBF შემდეგი() ციკლის დასასრული;

ატვირთეთ DBF ფაილი

DBF ფაილში ატვირთვის ეტაპები:

  1. XBase ობიექტის შექმნა;
  2. კოდირების მითითება (თუ არ არის მითითებული, გამოყენებული იქნება ANSI კოდირება);
  3. დარგების აღწერა;
  4. ფაილის შექმნა;
  5. მარყუჟი ხაზების დამატებით და შევსებით;
  6. ფაილის დახურვა.

მოდით განვიხილოთ ეს პროცესი მაგალითით:

DBF \u003d ახალი XBase; // ეტაპი 1. XBase ობიექტის შექმნა DBF კოდირება \u003d კოდირება XBase. OEM; // ეტაპი 2. კოდირების დაზუსტება DBF ველები. დამატება ("კოდი", "S", 9); // ეტაპი 3. ველის სახელის აღწერა და ტიპი DBF ველები. დამატება ("NAME", "S", 40); DBF CreateFile ("D: \\ MyFile.dbf"); // ნაბიჯი 4. შექმენით ფაილი ნიმუში \u003d დირექტორიები. ნომენკლატურა. აირჩიეთ (); შერჩევის დროს. შემდეგი () მარყუჟის DBF. დამატება (); // ხაზის დამატება DBF კოდი \u003d ნიმუში. Კოდი; // შეავსეთ ველის მნიშვნელობა DBF NAME \u003d ნიმუში. სახელი; DBF დაწერე (); // დაწერეთ სტრიქონი EndCycle; DBF დახურვა ფაილი(); // ეტაპი 6. ფაილის დახურვა

კოდირების მითითებისას გამოიყენება EncodingXBase ტიპი, რომელსაც შეუძლია ორი მნიშვნელობის მიღება:

  • ANSI - ვინდოუსის ფორმატი;
  • OEM - DOS ფორმატში.

სტრუქტურის აღწერისას ახალი ველის დამატებას აქვს სინტაქსი

Დაამატე (< Имя>, < Тип>, < Длина>, < Точность>)

შემდეგი ტიპები ხელმისაწვდომია:

  • "N" არის რიცხვი;
  • "S" - სიმებიანი;
  • "დ" - თარიღი;
  • "L" - ლოგიკური;
  • "F" - მსგავსია "N" - რიცხვი.

ველის სიგრძე საჭიროა "N", "F" და "S" ტიპის ტიპებისთვის.

ინდექსებთან მუშაობა

ინდექს ფაილი შეიძლება გამოყენებულ იქნას DBF ფაილთან ერთად, რომელიც შეიძლება შეიცავდეს ინფორმაციას ერთი ან მეტი ინდექსის შესახებ. ინდექსების არსებობა ქმნის შესაძლო გამოყენება ძიება და არა მხოლოდ ფაილის ყველა სტრიქონის თანმიმდევრული ძიება.

ინდექს ფაილის შექმნისას უნდა მიუთითოთ:

  • ინდექსების ჩამონათვალი;
  • ინდექს ფაილის შენახვის გზა (ატვირთვის მე –4 ეტაპზე).

ინდექს ფაილის შექმნის მაგალითი:

DBF ... ინდექსები. დამატება ("INDCODE", "CODE"); DBF შექმნა("D: \\ MyFile.dbf", "D: \\ index.cdx");

ახალი ინდექსის დამატების პროცედურას აქვს სინტაქსი:

Დაამატე (< Имя>, < Выражение>, <Уникальность>, < Убывание>, < Фильтр >)

გამოიყენეთ ინდექსები DBF ფაილიდან წაკითხვისას:

  • მიუთითეთ ინდექს ფაილისკენ მიმავალი გზა (ჩამოტვირთვის მე -2 ეტაპზე);
  • დააყენეთ მიმდინარე ინდექსი.

ინდექს ფაილის გამოყენებით DBF ფაილის გახსნის მაგალითი:

DBF ... OpenFile ("D: \\ MyFile.dbf", "D: \\ index.cdx"); DBF CurrentIndex \u003d DBF. ინდექსები. კოდი;

ყურადღება!

DBF ფაილის გახსნისას, პოზიციონირება ხდება ფაილის პირველ ჩანაწერზე. ფაილის პირველი ჩანაწერი არ ემთხვევა ინდექსის პირველ ჩანაწერს. ამიტომ, ინდექსების გამოყენებისას, რიგების თანმიმდევრულად გადაკვეთამდე, აუცილებელია ინდექსის პირველ რიგში განთავსება. ეს შეიძლება გაკეთდეს პირველი () მეთოდის გამოყენებით, მაგალითად:

DBF Პირველი ();

ორიდან ერთი ფუნქცია შეგიძლიათ გამოიყენოთ საძიებლად:

  • Პოვნა (< Ключ>, < Режим >) ;
  • FindByKey (< Режим >) .

ორივე ფუნქციის მუშაობის შედეგად დაუბრუნდება ლოგიკური ტიპის მნიშვნელობა (იპოვნეს თუ არა ჩანაწერი მითითებული პირობებით). თუ ძიება წარმატებულია, ამჟამინდელი მაჩვენებელი მითითებულია ნაპოვნი სტრიქონისთვის. ძიების რეჟიმში შეიძლება გამოყენებულ იქნას შემდეგი მნიშვნელობებიდან ერთი:

  • «>=»;
  • «>»;
  • «<=»;
  • «<«.

მოდით გადავხედოთ DBF ფაილში ძებნის მაგალითებს:

DBF \u003d ახალი XBase; DBF OpenFile ("D: \\ MyFile.dbf", "D: \\ index.cdx"); // DBF ფაილის გახსნისას, ინდექს ფაილი დამატებით არის მითითებული DBF CurrentIndex \u003d DBF. ინდექსები. კოდი; // მიმდინარე ინდექსის დაყენება // ძებნა ძებნა მეთოდის გამოყენებით: თუ DBF. იპოვნეთ ("000000003", "\u003d") შემდეგ აცნობეთ (+ DBF. NAME); წინააღმდეგ შემთხვევაში ანგარიში ("ვერ მოიძებნა"); Დაასრულე თუ; // ძებნა FindByKey მეთოდის გამოყენებით: DBF Გასაღები. კოდი \u003d "000000002"; თუ DBF. FindByKey ("\u003d") შემდეგ აცნობეთ ( "ნაპოვნია. ნივთის სახელი:" + DBP სახელი); წინააღმდეგ შემთხვევაში ანგარიში ("ვერ მოიძებნა"); Დაასრულე თუ; DBF დახურვა ფაილი();

DBF ფაილში ჩანაწერების წაშლა

ჩანაწერი წაიშლება Delete () მეთოდის გამოყენებით:

DBF ... წაშლა();

ამასთან, ეს მეთოდი სამუდამოდ არ წაშლის ჩანაწერს ფაილიდან, იგი აღინიშნება, როგორც წაშლილი. სტრიქონებზე გამეორებისას, წაშლისთვის აღნიშნულ ჩანაწერებს გამოტოვებენ. თუ თქვენ გჭირდებათ ფაილის მთლიანი გადახედვა, წაშლისთვის მონიშნული ჩანაწერების ჩათვლით, უნდა მიუთითოთ თვისება True ჩვენება ამოღებულია x ბაზის ობიექტი. შეგიძლიათ გაიგოთ, არის თუ არა ჩანაწერი წაშლილი, თუ არა ჩანაწერი წაშლილი () ფუნქციის გამოყენებით. წაშლის მონიშვნა გამოიყენეთ Restore () მეთოდი.

DBF ... DisplayRemoved \u003d მართალია; ჯერ არ არის DBP. დასასრულს () Loop If DBF. ჩანაწერი წაიშალა () შემდეგ DBF. აღდგენა (); Დაასრულე თუ; DBF შემდეგი() ციკლის დასასრული;

მარკირებული ჩანაწერების პირდაპირ წასაშლელად გამოიყენეთ შეკუმშვის () მეთოდი:

DBF ... შემცირება();

თუ ფაილში ყველა ჩანაწერის წაშლა გჭირდებათ, შეგიძლიათ გამოიყენოთ ClearFile () მეთოდი:

DBF ... ClearFile();

იტვირთება DBF– დან ADO– ით

ADO ტექნოლოგიის გამოყენება შესაძლებელია DBF ფაილებთან მუშაობისთვის. ADO დრაივერები შედის Windows ოპერაციულ სისტემაში და არ საჭიროებს დამატებით ინსტალაციას.

მოდით განვიხილოთ კოდის მაგალითი DBF ფაილიდან ADO ტექნოლოგიის გამოყენებით კითხვისთვის:

ადო \u003d ახალი COMObject ("ADODB. კავშირი"); // COM ობიექტის შექმნა ადო ღია ( "Provider \u003d Microsoft.Jet.OLEDB.4.0; | მონაცემთა წყარო \u003d" "D: \\" "; | გაფართოებული თვისებები \u003d DBASE III") DB \u003d ADO. შეასრულე ("აირჩიეთ * MyFile- დან"); // მოთხოვნა, რომ მიიღოთ ყველა ჩანაწერი ფაილი MyFile.DBF მიუხედავად იმისა, რომ DB. EOF \u003d 0 ციკლი // DBF ფაილში ჩანაწერების მიმოხილვა ანგარიში (DB. ველები ("სახელი"). მნიშვნელობა); // ველის მნიშვნელობაზე წვდომის მაგალითი დბ MoveNext (); // შემდეგ ჩანაწერში გადასვლა ციკლის დასასრული; ადო დახურვა ();

ზემოთ მოყვანილ მაგალითში გამოიყენება კავშირის სტრიქონი "Provider \u003d Microsoft.Jet.OLEDB.4.0; Data Source \u003d" D: \\ "; Extended Properties \u003d DBASE III". ამ სტრიქონში:

  • პროვაიდერი არის მძღოლი, რომელსაც გამოიყენებს;
  • მონაცემთა წყარო არის გზა, სადაც მდებარეობს DBF ფაილი. გზა მითითებულია დირექტორიის სიზუსტით. ფაილის სახელი გამოიყენება როგორც მაგიდის სახელი მოთხოვნებში;
  • გაფართოებული თვისებები - საჭირო პარამეტრი DBF ფაილების მითითებისას. ფაილის ფორმატის მითითება შესაძლებელია

ყურადღება!

ამ გზით კითხვისას, ნაგულისხმევი კოდირება არის OEM. კოდირების ANSI შეცვლის მიზნით, დააყენეთ HKEY_LOCAL_MACHINE \\ SOFTWARE \\ Wow6432Node \\ Microsoft \\ Jet \\ 4.0 \\ Engines \\ xBase \\ DataCodePage პარამეტრი "ANSI" Windows რეესტრში.

გააზიარე ეს