Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Otwieranie zbiorów DBF
Lewap




Typ: neutral
Postów: 1
Zarejestrowany: Jan 2003
Otwieranie zbiorów DBF

Mam dużą ilość danych na pojedynczych zbiorach typu *.dbf, potrzebuję przerobić je na zbiory znakowe. Jak hurtowo mogę czytać dane z DBFów zbiór po zbiorze ?

07-01-2003 09:09
Pokaż profil Lewap  Wyślij email do Lewap   
Proton_




Typ: neutral
Postów: 8
Zarejestrowany: Apr 2003
Dostęp do baz *.dbf

Wystarczy odpowiednio skonfigurować połączenie z bazą danych. Najprościej zrobić to poprzez obiekt recordset:

Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.ActiveConnection = "Provider=MSDASQL.1;Persist Security Info=False;Driver=Microsoft dBase Driver (*.dbf);Initial Catalog=c:\baza"

W parametrze Catalog podajesz pełną ścieżkę do katalogu w którym znajdują się pliki dbf.

Tak skonfigurowany Recordset umożliwia dostęp do plików dbf jak do zwykłych tabel i np. czytanie z pliku dane.dbf może wyglądać następująco:

Dim tmp 'zmienna do ktorej zapiszesz dane

rs.Source = "SELECT * FROM dane" 'zapytanie SQL pobierajace dane z tabeli
rs.CursorLocation = adUseClient
rs.CursorType = adOpenForwardOnly
rs.LockType = adLockReadOnly
rs.Open
If rs.RecordCount > 0 Then
  rs.MoveFirst 'ustawiasz sie na pierwszy wiersz
  do while not rs.EOF
        tmp = rs(0) 'czytanie pierwszego pola
        tmp = rs(1) 'czytanie drugiego pola itd.
      rs.MoveNext
  loop
endif

24-04-2003 14:04
Pokaż profil Proton_  Wyślij email do Proton_        1426961
anonim




Typ: Nie zarejestrowany

Witam, nie będe zakładał nowego tematu to dołącze sie do podobnego
A więc  wiecie jak wyciągnąć z pliku *.dbf informacje kiedy baza była ostatni raz aktualizowana albo czy jest jakiś inny sposób sprawdzenia tego, bo robie sobie program do liczenia cennika detalicznego i szczegółowy cennik hurtowy mam w pliku dbf zrobiłem interface itd. ale chciałbym żeby wyświetlało mi info o ostatniej aktualizacji bazy.

10-02-2004 13:40
  
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003

Skorzystaj z funkcji API. Jest tam między innymi taka funkcja, która pozwala pobrać następujące informacje o pliku:
- datę utworzenia,
- datę ostatniej modyfikacji (I OTO CI CHODZI!!!).

Jak znajdę kod, to TU podeślę.


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

09-04-2004 21:22
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003
Oto kod:


Option Explicit

Declare Function GetFileTime Lib "kernel32.dll" (ByVal hFile As Long, lpCreationTime As FILETIME, lpLastAccessTime As FILETIME, lpLastWriteTime As FILETIME) As Long
Declare Function FileTimeToLocalFileTime Lib "kernel32.dll" (lpFileTime As FILETIME, lpLocalFileTime As FILETIME) As Long
Declare Function CreateFile Lib "kernel32.dll" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Declare Function FileTimeToSystemTime Lib "kernel32.dll" (lpFileTime As FILETIME, lpSystemTime As SYSTEMTIME) As Long
Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Long) As Long

Dim hFile As Long  ' wskaźnik do otwieranego pliku
Dim ctime As FILETIME  ' data utworzenia
Dim atime As FILETIME  ' data ostatniego dostępu
Dim mtime As FILETIME  ' data oststniej modyfikacji
Dim thetime As SYSTEMTIME  ' do manipulacji czasem
Dim retval As Long  ' zwracana wartość

Const GENERIC_READ = &H80000000
Const GENERIC_WRITE = &H40000000
Const FILE_SHARE_READ = &H1
Const FILE_SHARE_WRITE = &H2
Const CREATE_ALWAYS = 2
Const CREATE_NEW = 1
Const OPEN_ALWAYS = 4
Const OPEN_EXISTING = 3
Const TRUNCATE_EXISTING = 5
Const FILE_ATTRIBUTE_ARCHIVE = &H20
Const FILE_ATTRIBUTE_HIDDEN = &H2
Const FILE_ATTRIBUTE_NORMAL = &H80
Const FILE_ATTRIBUTE_READONLY = &H1
Const FILE_ATTRIBUTE_SYSTEM = &H4
Const FILE_FLAG_DELETE_ON_CLOSE = &H4000000
Const FILE_FLAG_NO_BUFFERING = &H20000000
Const FILE_FLAG_OVERLAPPED = &H40000000
Const FILE_FLAG_POSIX_SEMANTICS = &H1000000
Const FILE_FLAG_RANDOM_ACCESS = &H10000000
Const FILE_FLAG_SEQUENTIAL_SCAN = &H8000000
Const FILE_FLAG_WRITE_THROUGH = &H80000000
'niezbędne struktury
Type FILETIME
  dwLowDateTime As Long
  dwHighDateTime As Long
End Type

Type SYSTEMTIME
  wYear As Integer
  wMonth As Integer
  wDayOfWeek As Integer
  wDay As Integer
  wHour As Integer
  wMinute As Integer
  wSecond As Integer
  wMilliseconds As Integer
End Type

Sub CzytajCzasPliku()

' Najpierw, otwórz plik do odczytu. 0 (zero) jako lpSecurityAttributes.
hFile = CreateFile("D:\kombinacje.txt", GENERIC_READ, FILE_SHARE_READ, ByVal CLng(0), OPEN_EXISTING, FILE_ATTRIBUTE_ARCHIVE, 0)
If hFile = -1 Then
  MsgBox "Nie mogłem otworzyć pliku!" & vbCr & vbCr & _
        "Anulowanie odczytu...", vbExclamation, "Błąd"
  Exit Sub  ' zakończ program
End If

' Teraz, pobierz datę utworzenia, ostatniego wejścia i czas ostatniej modyfikacji.
retval = GetFileTime(hFile, ctime, atime, mtime)
' konwertuj czas do lokalnej strefy czasowej
retval = FileTimeToLocalFileTime(ctime, ctime)
' konwertuj czas do formatu SYSTEMTIME
retval = FileTimeToSystemTime(ctime, thetime)
    'wyświetl datę utworzenia
    MsgBox "Plik został utworzony: " & thetime.wDay & "-" & thetime.wMonth & "-" & thetime.wYear

' konwertuj czas do lokalnej strefy czasowej
retval = FileTimeToLocalFileTime(mtime, mtime)
' konwertuj czas do formatu SYSTEMTIME
retval = FileTimeToSystemTime(mtime, thetime)
    'wyświetl datę zmodyfikowania
    MsgBox "Plik został zmodyfikowany: " & thetime.wDay & "-" & thetime.wMonth & "-" & thetime.wYear

' konwertuj czas do lokalnej strefy czasowej
retval = FileTimeToLocalFileTime(atime, atime)
' konwertuj czas do formatu SYSTEMTIME
retval = FileTimeToSystemTime(atime, thetime)
    'wyświetl datę ostatniego dostepu
    MsgBox "Plik był ostatnio twierany: " & thetime.wDay & "-" & thetime.wMonth & "-" & thetime.wYear

' zabij wskaźnik.
retval = CloseHandle(hFile)

End Sub



_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

09-04-2004 22:51
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
PIEKAR




Typ: neutral
Postów: 10
Zarejestrowany: Sep 2004
To i ja się podłączę do tematu

Mam pytanko, czy ktoś rozpracował format dbf'a. Potrzebuję napisać dll'ke, tworzącą dbf'a. Tj. jako parametr idzie tablica, albo recordset, a wychodzi plik dbf. Oczywiście chodzi mi o zapis binarny.

Dzięki i pozdrawiam


_____________________________________________
VB, VBS, ASP, ASP.NET, .....

11-10-2004 11:38
Pokaż profil PIEKAR  Wyślij email do PIEKAR   
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003

DBF

Xbase, dBASE II data files (*.dbf)

http://clicketyclick.dk/docs/db2_dbf.html ;
http://www.pgts.com.au/download/public/xbase.htm
http://www.dbase.com/KnowledgeBase/int/db7_file_fmt.htm
http://jcomeau.freeshell.org/www/domains/risp.org/members/jcomeau/ftparea/hacking/otherstuff/dbfspec.html -
Clipper:
http://www.zelczak.com/clipp_en.htm

Visual FoxPro 8.0
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_foxhelp/html/contable_file_structure_lpdbfrp.asp

różne
http://www.the7soft.com/file-formats/file-formats-Database/file-formats.html


_____________________________________________
Karolina

11-10-2004 17:35
Pokaż profil karolinavb  Wyślij email do karolinavb   
Wszystkich odpowiedzi: 6 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1