- Joomla! topic
- Musk szerint már jövőre itt vannak a Tesla Optimus humanoid robotok
- DIGI kábel TV
- Synology NAS
- Megrendszabályozza a Pornhubot az EU
- Ubuntu Linux
- A személyre szabott reklám lehet a streaming következő slágere
- Xiaomi AX3600 WiFi 6 AIoT Router
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- YouTube
Új hozzászólás Aktív témák
-
btotyi
tag
Hagy a BDE-t a francba. Ha kevés adatod van használj xml táblákat (ClientDataset) ha picivel több akkor pedig szánj rá egy kis időt és próbálj meg egy kis sql szervert ( pld. MSDE vagy beágyzott Firebird). Így ha később esetleg mégis több adatot, több felhasználót kell kezelni nem lesz probléma. Ha meg mégsem kell ilyesmi legalább tanultál valamit.
[Szerkesztve] -
btotyi
tag
Amíg csak egy gépen vagy addig istenes de több gép konkurens használat hálózatban, na ott lehet szívni. (indexsérülés, lock time out stb..., dbflush és tdutil használat szükséges ezerrel). Tehát ha csak a leghalványabb esélye is felmerül egy többes használatnak akkor már egyszerűbb mást használni. Az újabb Delphik (és a Borland) sem támogatja, ergo nem fejlesztik, javítják tovább. Szóval célszerű egyből elfelejteni. Léteznek kis, beágyazott ingyenes sql szerverek ( MSDE, Firebird). Egygépes, egyfelhasználós programot is célszerű így megcsinálni éa akkor gond nélkül lehet skálázni a rendszert. A firebird embedded változatánál egy dll-t (so-t) kell a progid mellé másolni és egy teljes funkcionalitású sql szervered van.
[Szerkesztve] -
btotyi
tag
A FreBird (FB) az InterBase (IB) opensource-os továbbfejlesztett változata. Alapból jól használható az IBX komponensekkel csak az extrákat (új adattípusok stb) nem tudják használni. A használathoz kell egy IB/FB szervert futtatni a gépeden. Az IB fizetős és csak fejlesztéshez használhatod azt amit a jogtiszta Delphid-hez kaptál. Az FB természetesen free. Szóló gépen is gond nélkül fut a szerver és a fejlesztőeszköz együtt. Ha van futó szervered (NT,XP alatt szervizként szokott futni) azt meg tudod nézni, leállítani, indítani az IB Szerver managerrel. Ha a szerver ok akkor ibconsollal tudsz hozzá csatlakozni adatbázist, táblákat létrehozni. Ha ez megvan akkor Delphiben az IBX-komponenscsomagban található IBDataBase, IBTransaction,IBQuery komponensekkel lehet kezelni az adatokat.
[Szerkesztve] -
btotyi
tag
A szintakszis jó de #-ok nem kellenek mivel az az ENTER-eket helyettesíti ( lád első bekezdés vége note !
Milyen aliasra gondolsz ? Aliasokat a Delphi használ, FB-hez nem kell.
Mert kell lennie egy rendszergazdának aki kezeli a szervert, létrehoz usereket jogosultságot oszt ki stb....
Mert egy szerveren több felhasználó is lehet akiknek különböző jogaik lehetnek ( Különböző adatbázisok, táblák stb stb stb).
Az maga az adatbázis mert az FB (InterBase) mindent egy file-ban (na jó lehetnek shadow és több files-os adatbázisok de az téged most nem érint) tárol.
[Szerkesztve] -
btotyi
tag
Az alkalmazások valóban lehetnek kliensek de kell egy közvetítő réteg ami az alkalmazás (üzleti logika) kéréseit továbbítja az adatbáziskezelő szerver felé, illetve a válaszokat továbbítja az alkalmazás felé. Az FB-nél ez a ''kliens'' egy dll. Ilyen szempontból az ISQL is egy alkalmazás ami a felhasználó által beírt sql parancsokat továbbpasszolja az adatbázis kliensnek (fbclient.dll) és a szerver válaszait pedig kiírja a képernyőre.
-
btotyi
tag
Persze, hogy van de nem muszály ugyanakkorának lenni mert be tudsz állítani GDI leképezéseket amik automatikusan transzformálják a koordinátákat. Átmásolni sem kell hanem ugyanazt a rajzoló rutint lefuttatot a printer canvas-ra is.
De egyszerűbb ha használsz egy kész printpreview komponenst mert azook általában mindent elintéznek. -
btotyi
tag
Nézz szét itt : Bővebben: link.
Ha valami nem világos kérdezz nyugodtan. -
btotyi
tag
Következő kérdés : Milyen Delphi és milyen Query ?
Most próbáltam ki D7 + IBX-el és hibátlanul megy.
Itt a form ami csinálja
object Form1: TForm1
Left = 268
Top = 666
Width = 502
Height = 356
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object DBGrid1: TDBGrid
Left = 8
Top = 8
Width = 385
Height = 289
DataSource = DataSource1
TabOrder = 0
TitleFont.Charset = DEFAULT_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -11
TitleFont.Name = 'MS Sans Serif'
TitleFont.Style = []
end
object BitBtn1: TBitBtn
Left = 408
Top = 16
Width = 75
Height = 25
Caption = 'BitBtn1'
TabOrder = 1
OnClick = BitBtn1Click
end
object IBDatabase1: TIBDatabase
Connected = True
DatabaseName = 'C:\DB\adr.gdb'
Params.Strings = (
'user_name=adruser'
'password=adrpasswd'
'lc_ctype=WIN1250')
LoginPrompt = False
Left = 16
Top = 16
end
object IBTransaction1: TIBTransaction
Active = True
DefaultDatabase = IBDatabase1
Left = 16
Top = 48
end
object IBQuery1: TIBQuery
Database = IBDatabase1
Transaction = IBTransaction1
CachedUpdates = True
SQL.Strings = (
'select * from FELHASZNALOK')
UpdateObject = IBUpdateSQL1
Left = 48
Top = 16
object IBQuery1FELH_AZON: TIntegerField
FieldName = 'FELH_AZON'
Origin = '''FELHASZNALOK''.''FELH_AZON'''
ProviderFlags = [pfInUpdate, pfInWhere, pfInKey]
Required = True
end
object IBQuery1NEV: TIBStringField
FieldName = 'NEV'
Origin = '''FELHASZNALOK''.''NEV'''
Required = True
Size = 30
end
object IBQuery1USERNEV: TIBStringField
FieldName = 'USERNEV'
Origin = '''FELHASZNALOK''.''USERNEV'''
Required = True
Size = 12
end
object IBQuery1JOG_KTGH: TIBStringField
FieldName = 'JOG_KTGH'
Origin = '''FELHASZNALOK''.''JOG_KTGH'''
Size = 3500
end
object IBQuery1STATUS: TIBStringField
FieldName = 'STATUS'
Origin = '''FELHASZNALOK''.''STATUS'''
FixedChar = True
Size = 1
end
end
object IBUpdateSQL1: TIBUpdateSQL
RefreshSQL.Strings = (
'Select '
' FELH_AZON,'
' NEV,'
' USERNEV,'
' JOG_KTGH,'
' STATUS'
'from FELHASZNALOK '
'where'
' FELH_AZON = : FELH_AZON')
ModifySQL.Strings = (
'update FELHASZNALOK'
'set'
' FELH_AZON = : FELH_AZON,'
' JOG_KTGH = : JOG_KTGH,'
' NEV = :NEV,'
' STATUS = : STATUS,'
' USERNEV = : USERNEV'
'where'
' FELH_AZON = : OLD_FELH_AZON')
InsertSQL.Strings = (
'insert into FELHASZNALOK'
' (FELH_AZON, JOG_KTGH, NEV, STATUS, USERNEV)'
'values'
' (: FELH_AZON, : JOG_KTGH, :NEV, :STATUS, : USERNEV)')
DeleteSQL.Strings = (
'delete from FELHASZNALOK'
'where'
' FELH_AZON = : OLD_FELH_AZON')
Left = 80
Top = 16
end
object DataSource1: TDataSource
DataSet = IBQuery1
Left = 48
Top = 48
end
end
A kettőspont utáni szóközöket vedd ki mert a PH motor emotikonoknak látja az SQL paraméterek. ( Hiányzik a [CODE] tag a PH-ból ?)
[Szerkesztve] -
btotyi
tag
BDE: Ha BDE-t használsz akkor ELVILEG le tudod alatta cserélni az ab-t mivel a BDE egy abszrakt réteget tesz közéd meg az ab közé. Nézd meg az SQL Explorert (kicsit problémás ugyan de alapjában használható). Abban is minden ab (amihez van BDE interfész) ugyanolyan módon kezelhető. ( Na persze nem tud minden finomságot amiket a a natív kliensek de működik)
StringGrid : mert megtanulsz egy kicsit másképpen gondolkodni meg programozni mint a drop'n click komponensekkel -
btotyi
tag
Nézd meg a ZIPMaster-t Bővebben: link
-
btotyi
tag
válasz <Adamsky> #560 üzenetére
IBExpress csomag (Delphi InterBase fül)
IBDatabase, IBTransAction, ListBox, BitBtn felrak egy formra. IBDataBase default transaction beállít IBTransAction1-re. Dupla katt IBDataBase1-en. Adatbázis jellemzők beállít. BitBtn1.OnClick-be beír :
IBDatabase1.GetTableNames(ListBox1.Items,False); // A boolean érték azt jelzi hogy kellenek-e a system táblák.
Program futtat gombra kattint és a listboxban megjelennek az adott adatbázisban található táblák. -
btotyi
tag
válasz VladimirR #584 üzenetére
Megpróbálom sorjában:
Lehet, persze. Megnyitod irásra/olvasásra belepozicionálsz ahova akarsz, beleírsz, bezárod.
Beszúrni persze közvetlenül nem lehet de nyitsz egy újat az elejére beírod amit akarsz és a régi file tartalmat hozzámásolod és törlöd a régit.
Memória kérdése de szerintem 100~150MB-t még tudsz allokálni.
if FileListBox1.Selected[n] then
Blokkonként olvasol addig amíg a keresett részt meg nem találtad. Ha sebességet akarsz elérni akkor a szektorméret (512 byte) többszörösét olvasod be egyszerre.
A pufferben tudsz keresni de magadnak kell megírni. -
btotyi
tag
ha fix méretű akkor deklarálj array[0..xx] of chart. csak ne felejts el a végére tenni egy #0-át vagy deklarálj egy rekordot aminek egyik eleme a tömb és a másik egy fix #0
Ja és a legutolsó Delphik (talán a 6-os óta, de ezt meg kellene néznem) a sima string típust belül null terminated-nek kezelik
[Szerkesztve] -
btotyi
tag
válasz Törzsfőnök #862 üzenetére
Nézz körül a mutex-ek tájékán.
vagy nézd meg ezt : Bővebben: link
[Szerkesztve] -
btotyi
tag
válasz Flashback #1004 üzenetére
Úgy hogy lekezeli a hibát !
Egyébként
try
.
.
.
valami tevékenység
except
on e:edbenginerrror do
begin // adatbázismotor hibák lekezelése
end
on e:????exception // más exception osztályok kezelése
on e:exception do
begin // minden ''maradék'' hiba lekezelése
end
end
IDE-ből való futtatáskor a delphi minden hibát elkap és megjelenít ha be van kapcsolva a debugger options - Language exceptions fülön Stop on Delphi exceptions checkbox!!!!
[Szerkesztve] -
btotyi
tag
-
btotyi
tag
válasz Daveeboy #1229 üzenetére
A property az egy Delphis lehetőség. Az UML nem ismeri. Tehát ha read onlyt akarsz akkor csak get metódusod van és az osztály példány létrehozásakor az konstruktor maga állítja be a belső változó (amit a get lekérdez) értékét. Így már remélem világos.
A set metódus pedig teljesen jó ahogy leírtad.
A property kezelést a Delphiben találták ki. Arra szolgál, hogy egy objektum tulajdonságát egy publikus típusos változón keresztül lehessen kezelni. Ha megfigyeled a Delphi object inspectora pontosan ezt teszi. Tulajdonképpen emiatt is vezették be. Ilyen property editorokat te is tudsz írni, és akkor az object inspector a te editorodat használja a megfelelő tulajdonság szerkesztéséhez. Egyszerű típusoknál elég a változó maga, összetettebekhez meg kell írni a get és set metódusokat is.
[Szerkesztve] -
btotyi
tag
válasz Terrorista #1266 üzenetére
Indy komponensek között nézz körül. (IdHttp)
-
btotyi
tag
válasz szabi244 #1318 üzenetére
Ha stringet akarsz float-tá konvertálni akkor a Delphi a windowsban beállított tizedes jelet használja fel. Tehát magyar windowson tizedes vessző, angol nyelvűn pedig tizedes pont van. Ha a stringet te magad rakod össze akkor használd a SysUtils DecimalSeparator változóját.
[Szerkesztve] -
btotyi
tag
Programja válogatja. egy egyszerű pascal programot ami csak alap (readkey, writeln) stb. használ relatív könnyű átírni. Egy bonyolultabb (grafikus menü stb esetleg assemblert is tartalmazót) nehezebb. Próbálj meg egy konzolos alkalmazást létrehozhi D-ben és oda emeld be a kódot és próbáld meg lefordítani. Utána hibakeresés stb.
Sok sikert !
Új hozzászólás Aktív témák
- Sony 55-210mm f/4.5-6.3 OSS (Sony E)
- Eladó több mint 2 év garanciával - LG OLED48C21LA / 4K/UHD/2160P/120Hz/OLED
- Razer Blade 16 2023 (i9 13950HX,RTX 4090 16Gb, 32GB DDR5 5600Mhz, 2x 1TB, 16" Dual UHD+FHD+ MiniLED)
- S23 Ultra 4 hónapos tokkal, garanciával eladó!!
- Üzletből,DELL garanciával, Dell XPS 9310 2in1 ultrabook, i7-1165G7/32RAM/1TBSSD/13,4"UHD TOCH