Page 1 of 2 1 2 LastLast
Results 1 to 15 of 16

Thread: Creating Apps with connecting to a daatabase on a server.

  1. #1

    Question Creating Apps with connecting to a daatabase on a server.

    Ik wil een app maken voor op een tablet (Android en Apple).
    Voorheen Client\Server applicaties (Interbase, FireBird, MSSql) gemaakt.
    Deze app moet een connectie hebben naar een database (FireBird, MSSql) op een server.
    Ik wil het bouwen met Delphi.
    Ik wil gebruik maken van FireDAC en Firemonkey.
    Ik heb het idee dat ik ook iets van Datasnap of iets dergelijks nodig heb.

    Kan iemand mij een idee geven wat ik hiervoor nodig heb en wat ik moet doen.
    Het moet wel remote zijn en beveiliging hoort er ook bij.

    Bij voorbaat dank!

  2. #2
    Quote Originally Posted by MacVersie View Post
    Ik wil het bouwen met Delphi.
    Ik wil gebruik maken van FireDAC en Firemonkey.
    Welke Delphi versie heb je dan?
    Professional of Enterprise?

    Professional bevat wel FireDAC maar die kan geen verbindingen met een externe server maken.

  3. #3
    Als je mobile hebt en de juiste data acces componenten zou het moeten lukken. Waar loop je tegenaan?

    Ik heb het idee dat ik ook iets van Datasnap of iets dergelijks nodig heb.
    Volgens mij is dat niet noodzakelijk. Je moet natuurlijk wel data acces componenten hebben die externe verbindingen toestaan (zoals RVK al aangaf heeft de PRO editie wat beperkingen op dit vlak). (middleware zoals datasnap kan wel makkelijk zijn vooral als je naar je app nog andere applicaties (web/win32) aan je server wilt hangen). Of het verstandig is om een ios app direct met een database server te laten communiceren is een ander verhaal.

  4. #4
    Bedankt voor de snelle reacties.

    Ik werk met Delphi 10.2 Tokyo Enterprise.
    Ik ga werken met een tablet ergens buiten in het veld.
    De verzamelde gegevens moeten in een database opslagen worden.
    Dit zou ik kunnen met doen met local SQLite en de gegevens later exporteren naar een MSSql database op de server.
    Dan moet ik weer twee stappen uitvoeren om de gegevens op de juiste plaats te krijgen.

    Ik heb niet altijd een verbinding met een server, omdat er geen wifi is, waardoor ik geen verbinding kan maken met een server (vandaar local SQLite).
    Met een dongle zou ik wel altijd een verbinding moeten kunnen maken, denk ik (is mijn voorkeur).

    Ik heb het geprobeerd met FireDAC en Firebird, waarbij de tablet de 'client' is en de Laptop als 'server' dient.
    De app wordt gestart en op het moment dat ik de FBConnection.Connected op True zet dan stopt de app na een tijdje (niet direct).
    Ik kan op het internet niet echt veel vinden voor mijn probleem, maar ga wel verder zoeken.

    Ik hoop dat er mensen zijn die mij in de juiste richting kunnen duwen.

    Met vriendelijk groet,
    Marco

  5. #5
    Dus jij heb je Firebird poort (3050) gewoon open gezet op het internet ?? Of werk je via een VPN verbinding.

    Het openzetten van een DB-poort direct op internet is niet aan te raden. Het zijn de meest gehackte poorten dus ik zou er nooit voor kiezen om die open te zetten.

    Je moet gaan denken aan een multi-tier programma. Bijvoorbeeld met kbmMW (maar daar kunnen andere je veel meer over uitleggen).

    Wat betreft de keuze voor Firemonkey op Android... mijn ervaringen zijn daar niet zo goed mee. Maar voor een "simpele" applicatie kun je er waarschijnlijk wel mee uit de voeten. Echter als je applicatie gewoon stops/crasht dan kun je het beste de log bekijken (via adb) of je programma direct in de IDE met debugging runnen. Dan krijg je waarschijnlijk wel een juiste foutmelding. Ze hebben het in ieder geval niet makkelijk gemaakt.

    Het verliezen van de verbinding met een Firebird database is in ieder geval fataal voor je programma (zonder goede afhandeling). Als je dus kiest voor een n-tier framework met buffering mogelijkheid zal dat waarschijnlijk ook opgelost worden. Je kunt er natuurlijk ook voor kiezen bepaalde dingen lokaal te doen en alleen bij goede verbinding de data over te zenden (als dat mogelijk is en je niet direct data uit je database nodig hebt).

  6. #6
    Ben het helemaal met alle bovengenoemde punten van RVK eens!

    De app wordt gestart en op het moment dat ik de FBConnection.Connected op True zet dan stopt de app na een tijdje (niet direct).
    Waarschijnlijk komt dit doordat je geen verbinding kunt maken met je database server. Dat het even duurt voordat je het merkt heeft waarschijnlijk te maken met een timeout waarde. Hij probeert het x-aantal seconden en dat geeft ie het op.

    Mogelijke oorzaken:

    -Firewall op je "server"

    -Het kan zijn dat de Firebird server alleen lokale connecties toestaat (met lokaal bedoel ik op dezelfde server). Als je nog een pc tot je beschikking hebt kun je even kijken of je vanuit daar wel verbinding kunt maken met een firebird db tooltje

    -Server draait niet

  7. #7
    Bedankt voor de informatie.

    Veiligheid gaat voor alles, dus poort openzetten om via internet gegevens door te geven, zal niet gebeuren.
    Ik ga in ieder geval kijken naar een n-tier framework.
    Ik zal in ieder geval nog terugkoppelen wat ik gedaan heb.

  8. #8
    als je kbmmw zou gaan gebruiken kun je op je client ook de lokale storage van je querycomponenten gebruiken. Dan heb je meteen ook de history van je records.

  9. #9
    Ik heb gezocht op kbmmw en ik begrijp dat het externe componenten zijn en niet van Delphi is?

    Bij het installeren van Delphi worden er ook voorbeelden opgeslagen.
    Een van die voorbeelden is FireDACJSONRefelct.
    De componenten(sets) die gebruikt worden zijn:
    - Firemonkey,
    - FireDAC,
    - Datasnap

    Ik heb hier gebruik van gemaakt.
    Je hebt een client en een server.
    In het client project heb ik de Android als Target Platform toegevoegd.
    Daarnaast heb ik Interbase vervangen door Firebird.
    Als client server applicatie op 1 pc werkt het en als app op Android (client) en de PC als server werkt het.

    Dat Firemonkey op de Android er niet gelikt uit ziet, vind ik minder belangrijk.
    Dat het werkt en dat de data correct in de database komt, is nu prioriteit.

  10. #10
    Senior Member
    Join Date
    Dec 2003
    Location
    Den Haag
    Posts
    210
    Hoeveel mensen gaan tegelijkertijd met de app werken? Honderden? Als een gebruiker data invoert, moet deze informatie dan meteen beschikbaar zijn voor andere mensen? Is ook een desktop client nodig misschien?

    App Tethering is wellicht een optie. Op de tablet kan de data eerst lokaal worden opgeslagen. Op een later tijdstip kan alsnog deze data naar de desktop client worden gestuurd om op te slaan in de database.

    Malcolm Groves heeft een aardige serie artikelen geschreven over deze techniek.
    http://www.malcolmgroves.com/blog/?p=1842

    Of in de documentatie:
    http://docwiki.embarcadero.com/RADSt..._App_Tethering

    Multitier is ook zeker een oplossing. Het is net de vraag wat je precies nodig hebt. Succes in ieder geval!

  11. #11
    App Tethering lijkt me de moeite waard om naar te kijken.
    Ik denk ook niet dat je met apps gigantische hoeveelheden data op moet halen, manipuleren en weer op moet slaan.
    Het tijdelijk lokaal opslaan moet een optie zijn op het moment dat je geen verbinding met de server kan maken.

  12. #12
    Ik heb gezocht op kbmmw en ik begrijp dat het externe componenten zijn en niet van Delphi is?
    Ja dat is correct! Het is geschreven door Kim Bo Madsen van components4developers. Je kunt er ontzettend veel mee en is ook middleware net als datasnap. Ik gebruik het nu zelf een paar jaar en ik moet zeggen dat ik er erg tevreden over ben. Tot nu toe ben ik nog niet tegen een beperking aangelopen, en ik heb redelijk wat gekke dingen gedaan. Het kost alleen wel wat tijd om het onder de knie te krijgen. Bij mijn weten werkt het trouwens ook op mobile. Zelf zou ik alleen niet zo snel Delphi gebruiken voor het maken van apps, maar dat is een ander verhaal.

    Zoals ik het nu begrijp heb je een REST server en dat is denk ik geen verkeerde opzet (Het is naar mijn mening veel en veel beter dan je app direct aan een database hangen). Je kunt er dan later nog makkelijk een website aanhangen. Nadeel is wel dat je zonder verbinding met de server niet zoveel meer kunt doen waarschijnlijk.

  13. #13
    Wat kan PowerApps van Microsoft in deze situatie betekenen?

    Op dit moment heb ik een client en een server application.
    De server praat tegen de database met behulp van FireDAC.
    De client praat tegen de Server met behulp van DataSnap Restconnection en JSon.

    Ik haal gegevens van de server over naar de client en sla het op in een lokale database.
    Deze lokale database wordt gecreëerd, wanneer de database nog niet bestaat.
    Met de client kunnen gegevens ingevoerd worden.
    Deze gegevens worden lokaal opgeslagen.
    Als er verbinding is met de server, dan worden de gegevens ook op de server opgeslagen.

    Er zitten behoorlijk wat controles op toetsaanslagen en het enablen of disablen van menu items.

    Wat ik tot nu toe gemaakt heb, werkt prima.
    Alleen de look oogt simpel, maar daar heb ik geen problemen mee.

    Ik vraag me af of dit ook mogelijk is in PowerApps.

  14. #14
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    En dat vraag op een Delphi forum.
    Ik ken het niet en wat ik op de website heb gezien is het simpel te bedienen. Maar wat als je advanced gaat?
    Vraag mij af of die tool ook gegevens op jouw client zet als je geen verbinding hebt naar de server.
    Delphi is great. Lazarus is more powerfull

  15. #15
    Ik programmeer graag met Delphi en het liefst schrijf ik de apps ook in Delphi.
    Er zijn managers die overtuigd moeten worden.
    Als het woord Microsoft genoemd wordt, dan willen managers gelijk dat het hele bedrijf overgaat naar Microsoft producten.
    Als ik vraag waarom, dan krijg ik als antwoord: Omdat de hele wereld met Microsoft werken!
    Ik ben aan het uitzoeken waarom ik apps met Delphi zal blijven schrijven en niet met PowerApps.

Page 1 of 2 1 2 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •