Prijunkite dbf failą prie c programos. Kaip atidaryti DBF failą: paprasčiausi sprendimai

Šiandien tikriausiai niekam nereikia sakyti, kad gana dažnai daugelis vartotojų susiduria su failais su plėtiniu .dbf. Liūdniausia, kad Windows OS net jei paketas yra įdiegtas Microsoft Office Šis tipas failai nėra susieti su jokia programa. Turime, dabar bandysime tai išsiaiškinti. Tuo pačiu metu pažiūrėkime, kaip galite sukurti plėtinio asociaciją vėliau automatinis atpažinimas duomenis ir atidarykite norimą failą.

DBF formatas: aprašymas

Tiesą sakant, iš pačios santrumpos, taikomos tokio tipo failo plėtiniui, jau galima daryti išvadą, kad tai yra duomenų bazė. Tai yra šiek tiek specifinė, nes tokie failai paprastai turi plėtinį

Šiuo atveju turime dar vieną, kurią, nepaisant jo specifiškumo, atpažįsta daugelis programų, palaikančių darbą su tokio tipo informacija. Tai gali būti ta pati „Excel“ arba „Access“, kurios yra pagrindinio „Microsoft Office“ paketo dalis, arba bet kurios kitos trečiųjų šalių kūrėjų biuro programos.

Kaip atidaryti DBF standartinėje versijoje

Tiesą sakant, jei staiga aptikote tokio tipo failą (piktograma jame nenaudojama net naršyklėje), nepanikuokite. Jį galima gana paprastai atidaryti naudojant „Excel“, nes būtent joje išsaugoma visa loginė struktūra ir, atsižvelgiant į tai, galimybė pritaikyti standartine sistema Paieška.

Kadangi standartinėje versijoje jokia programa nesusieta su pačiu failu, yra du būdai tęsti. Pavyzdžiui, rekomenduojama tiesiog bėgti Excel programa arba Prieiga ir tada naudokite standartinis meniu atidaryti failą arba derinį Ctrl klavišai+ O. Tačiau pasirodžiusiame meniu failo tipo lauke turėtumėte nurodyti „Visi failai“ (o ne „vietinis“ formatas), o tada pasirinkti failą, kurio ieškote. Būkite tikri: bet kuri skaičiuoklių programa atpažins šį duomenų tipą be jokių problemų.

Kaip jau aišku, mūsų atveju problema, kaip atidaryti DBF failą, kyla tik naudojant standartą biuro programa V Rankinis režimas. Kaip jau aišku, šis metodas ne visada patogus ir reikalauja tam tikro laiko.

Susijusios programos

Dabar pažiūrėkime į patį DBF failą. Kaip galiu jį atidaryti nenaudodamas standartinių biuro programų? Taip, tos pačios komunalinės paslaugos įtrauktos į panašią programinės įrangos produktai.

Pavyzdžiui, tai gali būti tas pats Open Office, Lotus ir tt Iš esmės čia nėra didelio skirtumo, nes svarbu tik tai, kad naudojama programa būtų pajėgi dirbti su lentelių elektroniniais duomenimis. Skaitymas DBF formatas visais atvejais daroma lygiai taip pat. Beje, tai nepriklauso nuo biuro rinkinio kūrėjo, nes visi palaiko tokio tipo duomenis, įskaitant net tokias platformas kaip „Oracle“.

Numatytųjų atidarymo parinkčių keitimas

Dabar pažiūrėkime, kaip atidaryti DBF failus, kad juos būtų galima naudoti automatinis režimas. Paprasčiausiu atveju tai daroma iš iškviesto submeniu dešiniuoju pelės mygtuku spustelėjus failą įprastoje „Explorer“, kur pasirenkama komanda „Atidaryti su...“.

Vienu atveju naudojama viena iš išvardytų programų. Kad daugiau negalvotumėte apie tai, kaip atidaryti DBF failus, galite tiesiog nurodyti pasirinktą programą ir pažymėti langelį šalia eilutės „Naudoti visiems šio tipo failams“ apačioje. Ta pati „Excel“ ateityje (jei ji bus pasirinkta kaip numatytoji programa) atidarys tokio tipo failą įprastu dvigubu paspaudimu.

Savaime suprantama, kad vietoj to Excel programos galite pasirinkti tą pačią Access ar kitas programas, kurios gali atpažinti ir atidaryti tokio tipo duomenis. Tai ne esmė. Svarbiausia yra sukonfigūruoti automatinį duomenų bazės atidarymą. Na, su kuo dirbti programinė įranga, tai yra kiekvieno atskiro kompiuterinės sistemos vartotojo reikalas.

Koks rezultatas?

Apibendrinant, verta pasakyti, kad geriausias variantas atidarant šio tipo failus, žinoma, biuro komplektas iš Microsoft Corporation, nes ji yra labiausiai paplitusi visame pasaulyje. Tiesa, nieko blogo, kad Microsoft produktų nesinaudojantis vartotojas tokio tipo duomenis atvers bet kurioje kitoje programoje.

Kaip jau aišku iš to, kas išdėstyta aukščiau, lentelių redaktoriai yra beveik visuose šiandien žinomuose paketuose. Jie gali skirtis vienas nuo kito tik pavadinimais, o tikrai ne funkciniu komplektu, kuris, kaip taisyklė, visur yra vienodas, su retomis išimtimis.

Be kita ko, atitinkamai galite naudoti daugybę kūrimo įrankių naudodami gana daug programavimo kalbų. Toje pačioje platformoje, kuri palaiko SQL serverių kūrimą ir optimizavimą, tokie failai, kaip sakoma, atidaromi akimirksniu. Atidarius jie turės gana specifinę išvaizdą, o tai yra šiek tiek neįprasta paprastam vartotojui. Tačiau dauguma vartotojų vargu ar naudos tokias profesinio tobulėjimo priemones ir apsiribos tik standartiniu programinės įrangos rinkiniu.

Galbūt šis kodas gali padėti:

VB funkcija, kurią reikia įdėti į MS Access, yra gana paprasta ir iš esmės iškviečia TransferDatabase metodą, perduodant jį DSN (nurodantį į šaltinio duomenų bazę), šaltinio lentelės pavadinimą ir paskirties lentelės pavadinimą. kodas atrodo taip:

Public Function Import (dsnName As String, sourceLentelės pavadinimas As String, targetTableName As String) ‘jei lentelė jau egzistuoja, ištrinkite ją. Įvykus klaidai GoTo CopyTable DoCmd.DeleteObject acTable, targetTableName CopyTable: DoCmd.TransferDatabase _ acImport, _ "ODBC Database", _ "ODBC;DSN=" + dsnName, _ acTable, _ sourceTableName FunctionTableName, End_ targetTableName

Ir tada C# kodas:

objekto prieigaObject = null; try ( accessObject = Activator.CreateInstance(Type.GetTypeFromProgID("Access.Application")); accessObject.GetType().InvokeMember("OpenCurrentDatabase", System.Reflection.BindingFlags.Default System.Reflection.InvokeFOlags.InvokeFObth , naujas objektas ("AccessDbase.mdb" )); accessObject.GetType().InvokeMember("Run", System.Reflection.BindingFlags.Default System.Reflection.BindingFlags.InvokeMethod, null, accessObject, naujas objektas ("Import", "DSN pavadinimas", "šaltinio lentelės pavadinimas", "tikslinės lentelės pavadinimas" )); accessObject.GetType().InvokeMember("CloseCurrentDatabase", System.Reflection.BindingFlags.Default System.Reflection.BindingFlags.InvokeMethod, null, accessObject, null); MessageBox.Show("Kopijuoti pavyko."); ) catch (Exception ex) ( string message = ex.Message; while (ex.InnerException != null) ( ex = ex.InnerException; message += "\r \n----\r\n" + ex.Message; ) MessageBox.Show(message); ) galiausiai (if (accessObject != null) ( System.Runtime.InteropServices.Marshal.ReleaseComObject(accessObject); accessObject = null; ) )

Pakeitus VBA, kad būtų galima skaityti acLink, o ne acImport, turėtų būti leidžiama susieti.

Redaguoti komentarus

Negaliu padėti su C#, bet čia yra VBScript, kuris susieja lentelę iš vieno MDB su kita.

StrLinkFile = "C:\Docs\Link.mdb" strAccessFile = "C:\Docs\LTD.mdb" "Sukurti nuorodą..." Nustatyti cn = CreateObject("ADODB.Connection") cn.Atidarykite "Provider=Microsoft. Jet.OLEDB.4.0;" & _ "Duomenų šaltinis=" & strAccessFile & ";" & _ "Išlikti saugos informacija = False" Nustatyti adoCat = CreateObject("ADOX.Catalog") Nustatyti adoCat.ActiveConnection = cn Nustatyti adoTbl = CreateObject("ADOX.Table") Nustatyti adoTbl.ParentCatalog = adoCat adoTbl.Name" = "LinkTable" adoTbl.properties("Jet OLEDB:Link Datasource") = strLinkFile adoTbl.properties("Jet OLEDB:Link Provider String") = "MS Access" adoTbl.properties("Jet OLEDB:Nuotolinės lentelės pavadinimas") = "Table1" adoTbl .properties("Jet OLEDB:Create Link") = Tiesa "Pridėti lentelę prie lentelių rinkinio " adoCat.Tables.Append adoTbl

Laba diena visiems, mieli tinklaraščio skaitytojai. Šiandienos straipsnyje kalbėsiu apie prieigą prie DBF failų (lentelių) Skirtingi keliai. Susidūriau su šia problema, kai man reikėjo pasiekti FoxPro DBF lenteles. Bandžiau per BDE, neveikė, tik į Paradox lenteles (dbf), galų gale nusprendžiau pabandyti per TDBF komponentą - tai taip pat pasirodė nesėkminga. Nusprendžiau pabandyti prisijungti per ADO senamadišku būdu ir viskas klostėsi kaip iš laikrodžio.

Todėl šiame straipsnyje aš jums pasakysiu, kaip galite prisijungti prie DBF lentelių trimis būdais:

  • Naudojant BDE – ši parinktis man netiko FoxPro lentelėse
  • Naudojant ADO - FoxPro stalai atsidarė puikiai
  • Naudodamas TDBF komponentą, jis atidaro Paradox lenteles su skirtingomis koduotėmis arba dBase gerai.

Tiesą pasakius, aš niekaip negaliu pakęsti BDE, bet teko dirbti su tokiomis lentelėmis ir pirmas variantas, per kurį norėjau prie jų prisijungti, buvo naudoti BDE, kas iš principo man pasiteisino, kad yra, man pavyko gauti lentelių sąrašą, kuriuo džiaugiausi ir galvojau, kad viskas vyks kaip tikėtasi, bet taip nebuvo. Kai bandžiau prisijungti prie lentelės, gavau klaidą, panašią į:

Bandžiau įdiegti ir pačiame BDE Administratoryje, ir jungiantis, bet nieko nepavyko. Bet naudojant šį metodą man pavyko puikiai prisijungti prie DBF - Paradox lentelių, pavyzdžiui, dBase.

Todėl formoje iš skirtuko BDE įdiegiame šiuos komponentus:

  • TTable arba TQuery
  • Pasirinktinai galite naudoti TDataSource ir TDbGrid

Toliau TDataBase komponento ypatybėje DatabaseName nustatėme duomenų bazės pavadinimą, parašiau - MyDB, o to paties komponento Savybėje DriverName iš išskleidžiamojo sąrašo pasirinkau STANDART. „LoginPromt“ ypatybę nustatėme į „False“, nes mūsų lentelėse nėra prisijungimo vardo ir slaptažodžio. „Params“ ypatybėje nustatome ryšio parametrus, nurodžiau tik kelią į mūsų lenteles:

Tu taip pat gali dukart spustelėkite Spustelėkite TDataBase komponentą ir sukonfigūruokite reikiamą ryšį ir nustatykite ypatybę Connected į True, todėl ryšys su lentelėmis turėtų įvykti be klaidų. Tai viskas, eikime į TTable komponentą, kur ypatybėje DatabaseName nurodome savo duomenų bazės pavadinimą, tai yra, MyDB. TableType ypatybėje pasirenkame lentelės tipą, aš nurodžiau ttDBase, o TableName ypatybėje pasirinkite lentelės pavadinimą, po to Active property nustatome į True. Tai viskas, jis man puikiai jungiasi ir puikiai atvaizduoja lentelę.

Tačiau ši parinktis man netiko naudojant „FoxPro“ lenteles, kaip minėjau aukščiau. Todėl, norėdamas išspręsti savo problemą, nusprendžiau naudoti ADO technologiją. Taigi iš ADO skirtuko įdiegiau šiuos komponentus:

  • TADOConnection
  • TADOQuery arba TADOTable
  • Pasirinktinai galite įdiegti TDataSource ir TDBGrid

Tada mums tereikia sukurti ryšį, kurį sukūrėme MS Access duomenų bazei, jis skirsis tuo, kad pasirinksime kitą duomenų teikėją, būtent Microsoft Visual FoxPro ODBC. Tai viskas, tada nurodome kodavimą ir kelią į lenteles. Jei tai yra FoxPro lentelės, aplanke turi būti failas su visų lentelių sąrašu, plėtinys *.dbc. Tai yra, TADOCONnection komponento ryšio eilutė atrodys maždaug taip:

TADOConnection komponentą sujungiame su TADOTable arba TADOQuery ir dirbame su mums reikalingomis lentelėmis.

Kitas variantas yra dirbti su dbf formato lentelėmis naudojant TDBF komponentą, kurį naudoju projekte. Tiesą sakant, noriu jo atsisakyti, jis tiesiog gerai veikia su koduotėmis. Nepasakysiu, kaip su juo dirbti, bet kaip pavyzdį paliksiu nuorodą.

Galbūt šis kodas gali padėti:

VB funkcija, kurią turėsite įdėti į MS Access, yra gana paprasta ir iš esmės iškviečia TransferDatabase metodą, perduodant jį DSN (nurodantį į šaltinio duomenų bazę), šaltinio lentelės pavadinimą ir paskirties lentelės pavadinimą. kodas atrodo taip:

Public Function Import (dsnName As String, sourceLentelės pavadinimas As String, targetTableName As String) ‘jei lentelė jau egzistuoja, ištrinkite ją. Įvykus klaidai GoTo CopyTable DoCmd.DeleteObject acTable, targetTableName CopyTable: DoCmd.TransferDatabase _ acImport, _ "ODBC Database", _ "ODBC;DSN=" + dsnName, _ acTable, _ sourceTableName FunctionTableName, End_ targetTableName

Ir tada C# kodas:

objekto prieigaObject = null; try ( accessObject = Activator.CreateInstance(Type.GetTypeFromProgID("Access.Application")); accessObject.GetType().InvokeMember("OpenCurrentDatabase", System.Reflection.BindingFlags.Default System.Reflection.InvokeFOlags.InvokeFObth , naujas objektas ("AccessDbase.mdb" )); accessObject.GetType().InvokeMember("Run", System.Reflection.BindingFlags.Default System.Reflection.BindingFlags.InvokeMethod, null, accessObject, naujas objektas ("Import", "DSN pavadinimas", "šaltinio lentelės pavadinimas", "tikslinės lentelės pavadinimas" )); accessObject.GetType().InvokeMember("CloseCurrentDatabase", System.Reflection.BindingFlags.Default System.Reflection.BindingFlags.InvokeMethod, null, accessObject, null); MessageBox.Show("Kopijuoti pavyko."); ) catch (Exception ex) ( string message = ex.Message; while (ex.InnerException != null) ( ex = ex.InnerException; message += "\r \n----\r\n" + ex.Message; ) MessageBox.Show(message); ) galiausiai (if (accessObject != null) ( System.Runtime.InteropServices.Marshal.ReleaseComObject(accessObject); accessObject = null; ) )

Pakeitus VBA, kad būtų galima skaityti acLink, o ne acImport, turėtų būti leidžiama susieti.

Redaguoti komentarus

Negaliu padėti, bet čia yra VBScript, kuris susieja lentelę iš vieno MDB su kita.

StrLinkFile = "C:\Docs\Link.mdb" strAccessFile = "C:\Docs\LTD.mdb" "Sukurti nuorodą..." Nustatyti cn = CreateObject("ADODB.Connection") cn.Atidarykite "Provider=Microsoft. Jet.OLEDB.4.0;" & _ "Duomenų šaltinis=" & strAccessFile & ";" & _ "Išlikti saugos informacija = False" Nustatyti adoCat = CreateObject("ADOX.Catalog") Nustatyti adoCat.ActiveConnection = cn Nustatyti adoTbl = CreateObject("ADOX.Table") Nustatyti adoTbl.ParentCatalog = adoCat adoTbl.Name" = "LinkTable" adoTbl.properties("Jet OLEDB:Link Datasource") = strLinkFile adoTbl.properties("Jet OLEDB:Link Provider String") = "MS Access" adoTbl.properties("Jet OLEDB:Nuotolinės lentelės pavadinimas") = "Table1" adoTbl .properties("Jet OLEDB:Create Link") = Tiesa "Pridėti lentelę prie lentelių rinkinio " adoCat.Tables.Append adoTbl

DBF yra plačiai naudojamas duomenų saugojimo formatas, kuris pasirodė praėjusio amžiaus 80-aisiais. Šis formatas pirmą kartą buvo naudojamas dBase DBVS šeimoje. Dėl dBase populiarumo ir plataus naudojimo buvo sukurta daug į dBase panašių programinės įrangos produktų, bendrai vadinamų xBase. Nepaisant didelio formato amžiaus, jis vis dar gana plačiai naudojamas. Šiame straipsnyje aptariama, kaip dirbti su DBF iš 1C:Enterprise.

1C: Enterprise specialus programinės įrangos objektas xBase naudojamas darbui su DBF formato failais (dBase III versija). Darbas su šiuo objektu dažniausiai nesukelia sunkumų.

Dėmesio!

Dirbdami su DBF failais atminkite, kad failo pavadinimas turi atitikti 8.3 apribojimą.

Dėmesio!

„XBase“ objektas pasiekiamas tiek kliento, tiek serverio pusėje. Spręsdami kiekvieną konkrečią problemą, turėtumėte pagalvoti apie kliento ir serverio sąveiką.

DBF failo skaitymas

Skaityti duomenis iš dbf failą gaminamas keliais nuosekliais etapais:

  1. XBase objekto kūrimas;
  2. Failo atidarymas;
  3. Paeiliui kartokite visas failo eilutes ir skaitykite lauko reikšmes;
  4. Failo uždarymas.
DBP = Nauja XBase; DBP. OpenFile("D:\MyFile.dbf" ); // 2 etapas. Failo atidarymas Nors tiesos ciklas // 3 etapas. Perėjimas per failo eilutes Ataskaita(DBF.NAME); Jei NE DBP. Kitas() Tada // Pozicija kitame įraše Nutraukti; endIf; EndCycle; DBP. Uždaryti failą (); // 4 etapas. Failo uždarymas

Norėdami kartoti failo eilutes, galite naudoti šiek tiek pakeistą algoritmą:

Dar NE DBF. AtEnd() ciklo ataskaita (DBF.NAME); DBP. Kitas(); EndCycle;

Įkėlimas į DBF failą

Įkėlimo į DBF failą etapai:

  1. XBase objekto kūrimas;
  2. Nurodant kodavimą (jei nenurodyta, bus naudojama ANSI koduotė);
  3. Laukų aprašymas;
  4. Failų kūrimas;
  5. Kilpa su pridėjimo ir užpildymo linijomis;
  6. Failo uždarymas.

Pažvelkime į šį procesą naudodami pavyzdį:

DBP = Nauja XBase; // 1 etapas. Sukurkite XBase objektą DBP. Kodavimas = EncodingXBase. OEM; // 2 etapas. Kodavimo nurodymas DBP. Laukai. Add("KODAS" , "S" , 9 ); // 3 etapas. Lauko pavadinimo ir tipo aprašymas DBP. Laukai. Add("NAME" , "S" , 40 ); DBP. CreateFile("D:\MyFile.dbf" ); // 4 etapas. Failų kūrimas Pasirinkimas = Katalogai. Nomenklatūra. Pasirinkite (); Iki atrankos. Kitas() Ciklas DBP. Papildyti(); // Pridėti eilutę DBP. CODE = pavyzdys. Kodas; // Užpildykite lauko reikšmę DBP. PAVADINIMAS = pasirinkimas. Vardas; DBP. Rašyti (); // Parašykite eilutę EndCycle; DBP. Uždaryti failą(); // 6 etapas. Failo uždarymas

Nurodant kodavimą naudojamas XBase Encoding tipas, kuris gali turėti dvi reikšmes:

  • ANSI– Windows formatas;
  • OĮG- DOS formatas.

Naujo lauko pridėjimas aprašant struktūrą turi sintaksę

Papildyti (< Имя>, < Тип>, < Длина>, < Точность>)

Galimi šie tipai:

  • „N“ – skaičius;
  • „S“ – styga;
  • „D“ – data;
  • „L“ – loginis;
  • „F“ – panašus į „N“ – skaičius.

Lauko ilgis reikalingas „N“, „F“ ir „S“ laukų tipams.

Darbas su indeksais

Indekso failas gali būti naudojamas kartu su DBF failu, kuriame gali būti informacijos apie vieną ar daugiau indeksų. Indeksų buvimas daro galimas naudojimas paieška, o ne tik nuosekli visų failo eilučių paieška.

Kurdami indekso failą, turite nurodyti:

  • Indeksų sąrašas;
  • Rodyklės failo išsaugojimo kelias (4 įkėlimo etape).

Indekso failo kūrimo pavyzdys:

DBP . Indeksai. Add("INDCODE" , "CODE" ); DBP. Sukurti failą("D:\MyFile.dbf" , "D:\index.cdx" );

Naujo indekso pridėjimo sintaksė yra tokia:

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

Norėdami naudoti indeksus skaitydami iš DBF failo:

  • Nurodykite indekso failo kelią (2 atsisiuntimo etape);
  • Nustatykite dabartinį indeksą.

DBF failo atidarymo naudojant indekso failą pavyzdys:

DBP . OpenFile("D:\MyFile.dbf" , "D:\index.cdx" ); DBP. CurrentIndex = dbf. Indeksai. INDCODE;

Dėmesio!

Atidarius DBF failą, padėtis nustatoma pirmame failo įraše. Pirmasis failo įrašas neatitinka pirmojo įrašo rodyklėje. Dėl šios priežasties, naudodami indeksus, prieš eidami eilutes nuosekliai, turite atsidurti pirmoje indekso eilutėje. Tai galima padaryti naudojant First() metodą, pavyzdžiui:

DBP. Pirmas();

Ieškant galima naudoti vieną iš dviejų funkcijų:

  • Rasti (< Ключ>, < Режим >) ;
  • FindByKey(< Режим >) .

Dėl abiejų funkcijų grąžinama Būlio tipo reikšmė (nesvarbu, ar buvo rastas įrašas su nurodytomis sąlygomis, ar ne). Jei paieška sėkminga, dabartinis žymeklis nustatomas į rastą eilutę. Viena iš šių reikšmių gali būti naudojama kaip paieškos režimas:

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

Pažvelkime į paiešką DBF faile naudodami pavyzdžius:

DBP = Nauja XBase; DBP. OpenFile("D:\MyFile.dbf" , "D:\index.cdx" ); // Atidarant DBF failą, nurodomas papildomas indekso failas DBP. CurrentIndex = dbf. Indeksai. INDCODE; // Nustatyti dabartinį indeksą // ieškoti naudojant paieškos metodą: Jei DBP. Find("000000003" , "=" ) Tada Report( + DBP. NAME); Else Report ("Nerasta"); endIf; // paieška naudojant FindByKey metodą: DBP. Raktas. KODAS = "000000002" ; Jei DBP. FindByKey("=" ) Tada Praneškite( "Rasta. Prekės pavadinimas: "+ DBP. VARDAS); Else Report ("Nerasta"); endIf; DBP. Uždaryti failą();

Įrašų ištrynimas DBF faile

Įrašas ištrinamas naudojant Delete () metodą:

DBP . Ištrinti();

Tačiau naudojant šį metodą įrašas visam laikui neištrinamas iš failo, jis pažymimas kaip ištrintas. Iteruojant eilutes, įrašai, pažymėti naikinti, praleidžiami. Jei norite patikrinti visą failą, įskaitant įrašus, pažymėtus ištrinti, turite nustatyti ypatybę į True. EkranasIštrintas xBase objektas. Naudodami funkciją RecordDeleted() galite sužinoti, ar įrašas pažymėtas ištrinti, ar ne. Norėdami pašalinti ištrynimo ženklą, naudokite Restore() metodą.

DBP . DisplayDeleted = Tiesa; Dar NE DBF. AtEnd() Ciklas Jei DBP. RecordDeleted() Tada DBP. Atkurti(); endIf; DBP. Kitas(); EndCycle;

Norėdami tiesiogiai pašalinti pažymėtus įrašus, naudokite Shrink() metodą:

DBP . Suspausti();

Jei reikia tiesiogiai ištrinti visus failo įrašus, galite naudoti ClearFile() metodą:

DBP . ClearFile();

Įkėlimas iš DBF naudojant ADO

ADO technologija gali būti naudojama darbui su DBF failais. ADO tvarkyklės yra įtrauktos į „Windows“ operacinę sistemą ir jų nereikia diegti papildomai.

Pažvelkime į kodo, skirto nuskaityti iš DBF failo naudojant ADO technologiją, pavyzdį:

ADO = Naujas COMObject("ADODB.Ryšys" ); // Sukurkite COM objektą ADO. Atviras( "Teikėjas = Microsoft.Jet.OLEDB.4.0; | Duomenų šaltinis = "D:\""; | Išplėstinės ypatybės = DBASE III); DB = ADO. Vykdyti("Pasirink * iš MyFile" ); // prašymas gauti visus įrašus iš failo MyFile.DBF Iki BD. EOF= 0 ciklas //Pereikite per DBF failo įrašus Report(DB. Fields("Vardas" ). reikšmė); // Lauko reikšmės prieigos pavyzdys DB. MoveNext(); //Eiti prie kito įrašo EndCycle; ADO. Uždaryti();

Pateiktame pavyzdyje naudojama ryšio eilutė „Provider=Microsoft.Jet.OLEDB.4.0;Data Source="D:\";Extended Properties=DBASE III“. Šioje eilutėje:

  • Teikėjas yra naudojamas vairuotojas;
  • Duomenų šaltinis – kelias, kuriame yra DBF failas. Kelias nurodytas tiksliai pagal katalogą. Failo pavadinimas naudojamas kaip lentelės pavadinimas užklausose;
  • Išplėstinės ypatybės – norint pasiekti DBF failus, tai yra būtinas parametras. Galite nurodyti failo formatą

Dėmesio!

Skaitant naudojant nurodytą metodą, numatytoji koduotė yra OEM. Norėdami pakeisti kodavimą į ANSI, „Windows“ registre turite nustatyti parametrą HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\xBase\DataCodePage į „ANSI“.

Dalintis