mojaSymfonia FORUM
https://forum.mix-soft.pl/

Nowa tabela w bazie danych
https://forum.mix-soft.pl/viewtopic.php?f=15&t=9652
Strona 1 z 1

Autor:  Zenek N [ 2020-08-04, 11:25 ]
Tytuł:  Nowa tabela w bazie danych

Cześć utworzyłem nową tabelę w bazie danych poprzez panel pcc.exe, o nazwie Aw
a dokładniej:
Cytuj:
baseAw aw


otrzymuję komunikat

Cytuj:
Błąd składni języka
Niezdefiniowany symbol baseAw aw

Autor:  sniez [ 2020-08-04, 11:57 ]
Tytuł:  Re: Nowa tabela w bazie danych

HANDEL ma zaszyte definicje tabel wbudowanych gdzieś "wewnątrz" ;)

Jak robisz swoją - zbuduj inkluda, który będzie zawierał definicję Twojej nowej bazy .

Basedef
field
key
keyfield

Znajdziesz w pomocy AMBASIC - dodawania bazy. Taką samą definicję musisz mieć, aby taką niestandardową bazę odczytać.

Autor:  Zenek N [ 2020-08-04, 12:39 ]
Tytuł:  Re: Nowa tabela w bazie danych

Ogólnie potrzebuję przechować tymczasową wartość gdzieś w bazie danych, gdzie taką wartość mogę ulokować aby nie kolidowało

Autor:  sniez [ 2020-08-04, 13:10 ]
Tytuł:  Re: Nowa tabela w bazie danych

No ale to, to masz akurat w helpie - działający kod - zakładanie bazy, dodawanie i odczyt rekordów i kasowanie bazy. Wszystko jest.

https://pomoc.sage.com.pl/Help/ambasic/-/100/27130

Kod:
//Utworzenie 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

Strona 1 z 1 Strefa czasowa UTC+1godz. [letni]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/