Posty bez odpowiedzi |oraz Aktywne tematy Dzisiaj jest 2024-11-25, 10:17x



Odpowiedz w temacie  [ Posty: 8 ] 
Handel Premium - nowa baza 
Autor Wiadomość

Rejestracja: 2007-12-07, 11:07
Posty: 86
Post Handel Premium - nowa baza
Witam, czy możliwe jest stworzenie nowej bazy (pliku .dat) w Handel Premium tak aby można było wpisywać wartości ze standardowych baz/plików poprzez użycie języka raportów. Jeśli tak w jaki sposób to obsłużyć.


2008-02-20, 12:37
Wyświetl profil
Autor Wiadomość
 


Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4000
Pomógł: 448
Post 
Można

1. Dodatkową bazę utworzyć w Accesie, SQL lub innej dowolnej i z poziomu AMBasic'a komunikować się za pomocą ODBC. "ADODB.Connection"

2. Utworzyć nową tabelę w postaci pliku *.DAT
Kod:
//Przykład wykorzystania poleceń obsługi baz danych
//Uworzenia struktury definicji bazy danych
   BaseDef bDef
//Utworzenie nowej definicja tabeli typu "osoby"
   bDef.New("Osoby")
//Zdefiniowanie pól tabeli
   bDef.Field(15, 4, "ID")
   bDef.Field(11, 40, "Nazwisko")
   bDef.Field(11, 20, "Imie")
//Zdefiniowanie klucza podstawowego "ID", automatyczna numeracja
   bDef.Key(0x0100, "ID")
//Określenie pola klucza podstawowego
   bDef.KeyField(15, 4, "ID")
//Utworzenie i udostępnienie definicji
   bDef.Create()
//Określenie położenia pliku bazy
   String sciezka=KatalogFirmy() + "NOWABAZA.DAT"
//Utworzenie pliku bazy danych
   Create sciezka For Base "Osoby"
//Ustalenie sposobu obsługi błędu tworzenia bazy
   BaseError (sciezka, 4)
//Otworzenie bazy danych
   Int nrBazy=Open sciezka For Base "Osoby"
   BaseError (sciezka, 4)
//Wpisanie do bazy rekordu
   SetKey (nrBazy, "ID")
   SetKeySeg (nrBazy, "ID", 0)
   SetField (nrBazy, "Nazwisko", "Nazwisko1")
   SetField (nrBazy, "Imie", "Imię1")
   InsRec (nrBazy)
   baseError (nrBazy, 4)
//Zamknięcie pliku bazy danych
   Close nrBazy
//Powtórne otworzenie pliku bazy danych
   Int nrBazy1=Open sciezka For Base "Osoby"
   baseError (nrBazy1, 4)
//Ustawienie rekordu bazy do odczytu
   SetKey (nrBazy1, "ID")
   SetKeySeg (nrBazy1, "ID", 1)
//Odczytanie rekordu bazy
   GetRec (nrBazy1, EQ)
   baseError (nrBazy1, 4)
//Sprawdzenie zapisanych w rekordzie informacji
   String p1=GetField (nrBazy1, "Nazwisko")
   String p2=GetField (nrBazy1, "Imie")
   String wpis="Zawartość rekordu odczytana z bazy:         "+" "+p1+" "+p2
   Print wpis;LF
//Zmiana zawartości rekordu
   SetField (nrBazy1, "Nazwisko", "NoweNazwisko1")
   SetField (nrBazy1, "Imie", "NoweImię1")
   PutRec (nrBazy)
//Ponowne ustawienie rekordu bazy do odczytu
   SetKey (nrBazy1, "ID")
   SetKeySeg (nrBazy1, "ID", 1)
//Sprawdzenie istnienia ustawianego rekordu
   Int jest=GetKey (nrBazy1, EQ)
   If jest then
      Print "W bazie brak ustawianego rekordu"; LF
   else
      Print "W bazie istnieje ustawiony rekord"; LF
   EndIf
//Sprawdzenie zawartości wybranego segmantu klucza ustawionego rekordu
   Int Seg=GetKeySeg (nrBazy1, "ID")
   Print "Segment ID klucza wybranego rekordu ma wartość: ", Seg; LF
//Odczyt nowej zawartości rekordu
   GetRec(nrBazy1, EQ)
//Sprawdzenie zapisanych w rekordzie nowych informacji
   String p1n=GetField (nrBazy1, "Nazwisko")
   String p2n=GetField (nrBazy1, "Imie")
   String wpisn="Zmieniona zawartość rekordu odczytana z bazy:   "+" "+p1n+" "+p2n
   Print wpisn;LF
//Usunięcie rekordu
   SetKey (nrBazy1, "ID")
   SetKeySeg (nrBazy1, "ID", 1)
   DelRec (nrBazy1)
//Ponowne ustawienie rekordu bazy do odczytu usuniętego rekordu
   SetKey (nrBazy1, "ID")
   SetKeySeg (nrBazy1, "ID", 1)
//Sprawdzenie istnienia ustawianego rekordu
   Int jest1=GetKey (nrBazy1, EQ)
   If jest1 then
      Print "Sprawdzenie usunięcia rekordu - rekord został usunięty"; LF
   else
      Print "Sprawdzenie usunięcia rekordu - rekord istnieje"; LF
   EndIf
//Zamknięcie pliku bazy danych
   Close nrBazy1
//Usunięcie pliku bazy danych
   Delete File sciezka
//Sprawdzenie usunięcia pliku bazy danych
   Int nrBazy2=Open sciezka For Base "Osoby"
   If nrBazy2>0 then
      Print "Sprawdzenie usunięcia pliku bazy - baza istnieje"; LF
      Close nrBazy2
   else
      Print "Sprawdzenie usunięcia pliku bazy - baza została usunięta"; LF
   EndIf



przykład pochodzi ze strony producenta oprogramowania

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2008-02-20, 13:25
Wyświetl profil

Rejestracja: 2008-06-10, 23:15
Posty: 5
Post 
Witam, czy mógł bym prosić o razszeżenie twmatu o twożenie dodatkowych kluczy, np jak by wyglądał klucz osoba ustawiający tabelę wg nazwiska a potem imienia?


2008-09-15, 22:26
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4000
Pomógł: 448
Post 
Kod:
   bDef.Key(0x0100 | 0x0002 , "osoba")
   bDef.KeyField(11, 40, "Nazwisko")
   bDef.KeyField(11, 20, "Imie")

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2008-09-16, 11:22
Wyświetl profil

Rejestracja: 2008-06-10, 23:15
Posty: 5
Post 
Dzięki za szybką odpowiedź.

czyli:

pierwszy indeks:
//Zdefiniowanie klucza podstawowego "ID", automatyczna numeracja
bDef.Key(0x0100, "ID")
//Określenie pola klucza podstawowego
bDef.KeyField(15, 4, "ID")

drugi klucz:
bDef.Key(0x0100 | 0x0002 , "osoba")
bDef.KeyField(11, 40, "Nazwisko")
bDef.KeyField(11, 20, "Imie")

to trzeci klucz załużmy, że mamy jeszcze jedno pole o nazwie "Drugie Imie" wyglądał by następująco:
bDef.Key(0x0100 | 0x0003 , "osoba2")
albo bDef.Key(0x0100 | 0x0002 | 0x0003 , "osoba2")
bDef.KeyField(11, 40, "Nazwisko")
bDef.KeyField(11, 20, "Drudie Imie")

czy mam dobry tok rozumowania?
co oznaczają wartości w polach bDef.Key(pole1 | pole2 , "nazwa klucza")
czy są to indeksy kolejnych kluczy?

z góry dziękuję za odpowiedź.
Pozdrawiam


2008-09-16, 11:42
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4000
Pomógł: 448
Post 
kolejny klucz będzie wyglądał tak samo

Kod:
   bDef.Key(0x0100 | 0x0002 , "osoba2")
   bDef.KeyField(11, 40, "Nazwisko")
   bDef.KeyField(11, 20, "DrugieImie")


dodam, że tak zdefiniowane klucze nie pozwolą na zapisanie w bazie dwóch osób o takich samych imionach i nazwiskach.

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2008-09-16, 12:13
Wyświetl profil

Rejestracja: 2008-06-10, 23:15
Posty: 5
Post 
Wielkie dzięki

po południu powalczę z tematem.
pozdrawiam


2008-09-16, 13:03
Wyświetl profil

Rejestracja: 2008-03-10, 14:01
Posty: 593
Post kilkakrotne InsRec - błąd
Kiedy w poniższym kodzie próbuję wstawić dwa rekordy, funkcja GetRecordCount zwraca mi wartość 1 - czemu nie wstawiają się obydwa rekordy?

Poza tym mam bład "Zbyt mały bufor danych" ???.

Kod:
//Uworzenia struktury definicji bazy danych
BaseDef bDef

//Utworzenie nowej definicja tabeli typu "osoby"
bDef.New("Osoby")

//Zdefiniowanie pól tabeli
bDef.Field(15, 4, "ID")
bDef.Field(11, 40, "Nazwisko")
bDef.Field(11, 20, "Imie")

//Zdefiniowanie klucza podstawowego "ID", automatyczna numeracja
bDef.Key(0x0100, "ID")

//Określenie pola klucza podstawowego
bDef.KeyField(15, 4, "ID")

//Utworzenie i udostępnienie definicji
bDef.Create()

//Określenie położenia pliku bazy
String sciezka=KatalogFirmy() + "NOWABAZA.DAT"

//Utworzenie pliku bazy danych
Create sciezka For Base "Osoby"

//Ustalenie sposobu obsługi błędu tworzenia bazy
BaseError (sciezka, 4)

//Otworzenie bazy danych
Int nrBazy=Open sciezka For Base "Osoby"
BaseError (sciezka, 4)

//Wpisanie do bazy rekordu
SetKey (nrBazy, "ID")
SetKeySeg (nrBazy, "ID", 0)

SetField (nrBazy, "Nazwisko", "Nazwisko1")
SetField (nrBazy, "Imie", "Imię1")
InsRec (nrBazy)
message USING "%l",GetRecordCount(nrBazy)

SetField (nrBazy, "Nazwisko", "Nazwisko2")
SetField (nrBazy, "Imie", "Imię2")
InsRec (nrBazy)
message using "%l",GetRecordCount(nrBazy)

baseError (nrBazy, 4)

//Zamknięcie pliku bazy danych
Close nrBazy

//Usunięcie pliku bazy danych
Delete File sciezka

_________________
zz


2011-11-22, 00:02
Wyświetl profil
Wyświetl posty nie starsze niż:  Sortuj wg  
Odpowiedz w temacie   [ Posty: 8 ] 
   Podobne tematy   Autor   Odpowiedzi   Odsłony   Ostatni post 
Na tym forum nie ma nowych nieprzeczytanych postów. Nowa baza danych - pozostawienie starych parametrów

w Programy Księgowe

~basti

12

4833

2010-04-09, 09:21

byrusia Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. KDF 2013 - nowa baza problem z zalogowaniem.

w Programy Kadrowo Płacowe

Bartosh89

0

2030

2013-09-26, 15:50

Bartosh89 Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. FiK 2009 premium - uwalona baza danych - jak/kto ?

w Programy Księgowe

mateos

3

2611

2012-02-21, 00:53

krzysiek Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Łączenie typów dokumentów Handel Premium z dok. FK Premium

w Programy Handlowe

jagoda

4

5055

2009-10-19, 10:53

krzysiek Wyświetl najnowszy post



Kto jest online

Użytkownicy przeglądający to forum: Nie ma żadnego zarejestrowanego użytkownika i 4 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Support forum phpbb by phpBB Assistant