Toon posts:

Access database voor website - hoe updaten?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0Henk 'm!

  • NickThissen
  • Registratie: November 2007
  • Laatst online: 23-05 20:03
Hey,

Ik heb me een tijd geleden eens aan ASP.NET gewaagd om een paar websites te maken. Nu gebruik ik daar een Access database voor (SQL moet ik extra voor betalen op m'n webhost) die gewoon als fysiek bestand in de App_Data map staat (ik geloof dat dat verder correct is?).

Het werkt allemaal prima, een probleem is alleen dat is soms de database moet updaten. Hierbij denk ik aan twee gevallen:
- Bestaande velden in de database wijzigen,
- Tabellen wijzigen / nieuwe tabellen toevoegen.

In een van m'n eerdere websites bijvoorbeeld was iemand zijn wachtwoord vergeten. Ik hash de wachtwoorden voordat ik ze in de database opsla, dus ik kon hem niet vertellen wat zijn wachtwoord was. In plaats daarvan had ik maar even voor hem een nieuw wachtwoord verzonnen en dat handmatig in de database gezet, door de mdb file van m'n server te halen, te wijzigen, en daarna weer te uploaden. Dit kan makkelijk voorkomen worden door een pagina aan m'n website toe te voegen waar ik de wachtwoorden van iedereen kan wijzigen (natuurlijk enkel als de ingelogde gebruiker daar rechten voor heeft), maar omdat ik die pagina op dat moment niet had kon ik dus niet anders (denk ik...). Daarna heb ik voor elke website zo'n pagina gemaakt, maar ik kan me voorstellen dat er ooit iets vergelijkbaars optreed (waar ik nu nog niet aan denk) waardoor ik weer in de database moet gaan zitten rommelen.

Als ik iets nieuws aan m'n website toevoeg dan moet ik vaak ook tabellen aan de database toevoegen. Nu heb ik een kopie van de database in m'n ontwikkel omgeving, waar ik dan eerst de wijzigingen aan aanbreng om te testen. Als het allemaal werkt echter dan zal ik toch echt de database op de server moeten aanpassen. Ik kan natuurlijk niet mijn lokale database kopieren, aangezien daar niet de recente data in zit. Dus moet ik weer opnieuw de database van de server halen, dan tabellen gaan wijzigen en toevoegen (waarbij ik goed op moet letten dat ik precies dezelfde wijzigingen maak als in mijn ontwikkel omgeving anders werkt het natuurlijk niet), en de database daarna weer uploaden.

Dit downloaden, wijzigen, uploaden van de database kan natuurlijk voor problemen zorgen: als iemand iets op m'n site doet wat de database aanpast terwijl ik aan het wijzigen ben, dan gaat die wijziging dus verloren zodra ik mijn (nu oude) versie weer upload. Daarom gooi ik de site altijd plat terwijl ik zo'n database wijziging doe, maar dat is natuurlijk ook niet ideaal...


Lang verhaal kort: hoe vermijd ik dat ik de database moet downloaden, wijzigen en weer uploaden? Is er een betere manier om de database aan te passen? Ik bedenk bijvoorbeeld een pagina op m'n website die alleen voor mij te bereiken is (geen idee hoe ik dat voor elkaar krijg behalve met een wachtwoord) waar ik een willekeurige query op de database kan uitvoeren. Maar dat lijkt me ook niet echt veilig, handmatig queries intypen kan nog wel eens misgaan (je zou maar een 'where ID = ..' vergeten bij een update), en voor elke query de database backuppen is ook een beetje overdreven denk ik...

Er moet toch een betere manier zijn? Ik geloof dat MS SQL dit toch beter geregeld heeft, daarvoor kun je gewoon een script runnen dat de database tabellen kan wijzigen geloof ik? Bestaat er niet iets vergelijkbaars voor Access?

Enige suggesties?

Mijn iRacing profiel


Acties:
  • 0Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Laatst online: 15:26

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

NickThissen schreef op dinsdag 31 mei 2011 @ 09:49:
Lang verhaal kort: hoe vermijd ik dat ik de database moet downloaden, wijzigen en weer uploaden?
Lang verhaal kort:
NickThissen schreef op dinsdag 31 mei 2011 @ 09:49:
(SQL moet ik extra voor betalen op m'n webhost)
Oftewel: gewoon die 2 euro per maand extra lappen en jezelf een he-le-boel gezeik besparen. Alternatief kies je voor de "duppie op de eerste rang zitten" en blijf je lekker aanmodderen met wat je nu doet.
NickThissen schreef op dinsdag 31 mei 2011 @ 09:49:
Er moet toch een betere manier zijn? Ik geloof dat MS SQL dit toch beter geregeld heeft, daarvoor kun je gewoon een script runnen dat de database tabellen kan wijzigen geloof ik? Bestaat er niet iets vergelijkbaars voor Access?
:X Zélfs Access kent gewoon DDL hoor ;)

Ondersteunt je host overigens geen SQLCE? Dat kan nog wel eens goedkoper zijn (als het überhaupt al iets meer kost).

[Voor 43% gewijzigd door RobIII op 31-05-2011 09:58]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


Acties:
  • 0Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
RobIII schreef op dinsdag 31 mei 2011 @ 09:52:
[...]
Ondersteunt je host overigens geen SQLCE? Dat kan nog wel eens goedkoper zijn (als het überhaupt al iets meer kost).
Of SQLite als SQLCE niet wil werken.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0Henk 'm!

  • NickThissen
  • Registratie: November 2007
  • Laatst online: 23-05 20:03
RobIII schreef op dinsdag 31 mei 2011 @ 09:52:
[...]

Oftewel: gewoon die 2 euro per maand extra lappen en jezelf een he-le-boel gezeik besparen. Alternatief kies je voor de "duppie op de eerste rang zitten" en blijf je lekker aanmodderen met wat je nu doet.
De meerprijs voor een MS SQL database is 29 euro per jaar. Dat is opzich niet veel, maar de webhost zelf kost maar 24 euro per jaar, dus de database is duurder dan de webhost zelf, dat vind ik toch wel wat overdreven...
RobIII schreef op dinsdag 31 mei 2011 @ 09:52:
[...]
:X Zélfs Access kent gewoon DDL hoor ;)
Dat wil dus zeggen dat ik via code tabellen zou kunnen wijzigen / toevoegen. Dat heb ik wel eens gedaan een tijd geleden ja (niet op een webserver though), maar dan zou ik daarvoor dus, als ik het goed wil oplossen, een pagina voor moeten maken waar ik de database mee kan wijzigen (die pagina zou dan de queries uitvoeren). Of ik moet een pagina maken waar ik handmatig een query kan invoeren, maar zoals ik al zei zie ik dat niet helemaal zitten.

Of begrijp ik het nu verkeerd en kan ik ook een script bestandje erop los laten ofzo?
RobIII schreef op dinsdag 31 mei 2011 @ 09:52:
[...]
Ondersteunt je host overigens geen SQLCE? Dat kan nog wel eens goedkoper zijn (als het überhaupt al iets meer kost).
Voor zover ik weet alleen Access, MS SQL (tegen betaling) en MySQL. Is MySQL een optie, of heb ik dan hetzelfde probleem als met Access?

Mijn iRacing profiel


Acties:
  • 0Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Laatst online: 15:26

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

NickThissen schreef op dinsdag 31 mei 2011 @ 10:30:
[...]

De meerprijs voor een MS SQL database is 29 euro per jaar. Dat is opzich niet veel, maar de webhost zelf kost maar 24 euro per jaar, dus de database is duurder dan de webhost zelf, dat vind ik toch wel wat overdreven...
Dus voor (nog geen) 2,50 per maand ga je moeilijk zitten doen en elke paar weken een aantal uren van je tijd zitten verdoen om die 2,50 te besparen? Raar businessmodel heb jij. Al kostte 't, bij wijze van, 300 euro per jaar: dan nog haal je 't er uit als je met 2 "updates" een paar uur bezig bent (afhankelijk van je tarief :P ).

Ik snap niet dat mensen zo krom kunnen redeneren.
NickThissen schreef op dinsdag 31 mei 2011 @ 10:30:
Of begrijp ik het nu verkeerd en kan ik ook een script bestandje erop los laten ofzo?
Je kunt toch gewoon een script met de benodigde DDL uitvoeren :? Maak een update.sql of iets dergelijks met daarin alle DDL om je DB te upgraden en execute die vanuit je applicatie.
NickThissen schreef op dinsdag 31 mei 2011 @ 10:30:
Is MySQL een optie, of heb ik dan hetzelfde probleem als met Access?
Doe eens gek en onderzoek 't eens? ;) Weet je wie die vraag 't best kan beantwoorden? Jij ;) Hoe moeten wij weten of MySQL voor jou een optie is zonder te weten wat je eisen, wensen etc. zijn?

[Voor 42% gewijzigd door RobIII op 31-05-2011 10:40]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


Acties:
  • 0Henk 'm!

  • Schumaster
  • Registratie: Januari 2007
  • Laatst online: 02-06 16:20
Ik denk(geen statistieken bij de hand) dat MySQL zelfs een van de meest gebruikte databases is in website-omgevingen en deze is prima geschikt voor het doel wat jij voor ogen hebt.

Acties:
  • 0Henk 'm!

  • NickThissen
  • Registratie: November 2007
  • Laatst online: 23-05 20:03
RobIII schreef op dinsdag 31 mei 2011 @ 10:35:
[...]

Dus voor (nog geen) 2,50 per maand ga je moeilijk zitten doen en elke paar weken een aantal uren van je tijd zitten verdoen om die 2,50 te besparen? Raar businessmodel heb jij. Al kostte 't, bij wijze van, 300 euro per jaar: dan nog haal je 't er uit als je met 2 "updates" een paar uur bezig bent (afhankelijk van je tarief :P ).

Ik snap niet dat mensen zo krom kunnen redeneren.
De websites waar ik het over heb zijn geen professionele websites waar ik geld aan verdien. Ik maak ze voornamelijk om ASP.NET te leren, voor eigen gebruik of om mensen een plezier te doen (ik heb een tijd geleden bijvoorbeeld een website gemaakt voor een F1 spel competitie hier op tweakers waar men zijn rondetijden kon uploaden). Ik krijg er dus totaal niets voor, en de webhost betaal ik gewoon zelf. Ik denk dat dat een goeie reden is om die 2,50 te vermijden tenzij het gewoon niet anders kan. Het is ook niet zo dat ik uren bezig ben om de database te updaten; dat is in een minuut of twee meestal wel gebeurd. Het is gewoon vervelend om de site te moeten platleggen en alles handmatig te doen (maar nog net niet zo vervelend om er geld aan uit te gaan geven).

Als jij bereid bent mij per uur te betalen dan zal ik geen minuut twijfelen om die 2,50 te betalen :+

[Voor 3% gewijzigd door NickThissen op 31-05-2011 10:48]

Mijn iRacing profiel


Acties:
  • 0Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Laatst online: 15:26

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

NickThissen schreef op dinsdag 31 mei 2011 @ 10:47:
Het is ook niet zo dat ik uren bezig ben om de database te updaten; dat is in een minuut of twee meestal wel gebeurd. Het is gewoon vervelend om de site te moeten platleggen en alles handmatig te doen (maar nog net niet zo vervelend om er geld aan uit te gaan geven).
Ik vrees dat je eens even eerlijk moet nagaan hoeveel tijd er in gaat zitten. Want dit is totaal niet realistisch. Als jij de site moet platleggen, de DB moet downloaden, handmatig bijwerken, weer uploaden en de site weer 'up' moet helpen gaat daar geheid meer in zitten dan 1 a 2 minuten. Als je het hele traject telt (dus inc. opstarten van je FTP programma, het down/uploaden, het aanpassen van de DB en alles wat er bij komt kijken) ben je geheid een kwartier verder als het al niet meer is. En dan heb je nog niet meegeteld de keren dat je een foutje maakt(e) en de hele zooi nog een keer moet uitvoeren of weet ik het. 1 a 2 minuten zijn gewoon verre van realistisch. Als je zo in het bedrijfsleven zou rekenen zou je verdomd productieve dagen moeten hebben ;) :P
NickThissen schreef op dinsdag 31 mei 2011 @ 10:47:
Als jij bereid bent mij per uur te betalen dan zal ik geen minuut twijfelen om die 2,50 te betalen :+
Ik zou het haast doen, just to prove my point :+ :P Je moet je gewoon afvragen of 't je die 2,50 p/maand waard is. Ik weet wel wat ik zou doen. En ik durf te wedden dat als je 't eens een paar maanden geprobeerd hebt dat je zegt "dat is de beste 2,50 die p/maand die ik ooit heb uitgegeven aan mijn site(s)" ;)

Daarnaast hebben we zat alternatieven genoemd die goedkoper of gratis (zouden moeten) zijn; die kun je ook nog eens proberen voordat je ergens voor gaat dokken. Wat let je?

[Voor 22% gewijzigd door RobIII op 31-05-2011 10:55]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


Acties:
  • 0Henk 'm!

  • NickThissen
  • Registratie: November 2007
  • Laatst online: 23-05 20:03
Als er geen goeie alternatieven zijn dan zal ik uiteraard goed overwegen om toch MS SQL te gaan gebruiken. Dit topic was dan ook bedoeld om te vragen of ik iets over het hoofd zei waardoor de meerwaarde van MS SQL tegenover Access die 2,50 misschien niet waard zou zijn (even rekening mee houden dan ik alles uit eigen zak betaal, anders was het natuurlijk sowieso geen issue).

En of het nou 1 minuut of een kwartier duurt, een kwartier keer 0 per uur is nog steeds 0...

Mijn iRacing profiel


Acties:
  • 0Henk 'm!

  • Peedy
  • Registratie: Februari 2002
  • Laatst online: 19-09-2022
Aanvullend op RobIII; je wil ASP.NET leren maar je bent te gierig om 2,50 per maand in je opleiding (want dat is het eigenlijk) te investeren? Bovendien is de kosten van de database afzetten tegen de kosten van je hosting natuurlijk een nonsens argument; bij webhosting voor 24 euro per jaar moet je je ook sterk gaan afvragen wat nou de kwaliteit, service en uptime daarvan is.

[Voor 45% gewijzigd door Peedy op 31-05-2011 10:59]


Acties:
  • 0Henk 'm!

  • NickThissen
  • Registratie: November 2007
  • Laatst online: 23-05 20:03
Peedy schreef op dinsdag 31 mei 2011 @ 10:58:
Aanvullend op RobIII; je wil ASP.NET leren maar je bent te gierig om 2,50 per maand in je opleiding (want dat is het eigenlijk) te investeren? Bovendien is de kosten van de database afzetten tegen de kosten van je hosting natuurlijk een nonsens argument; bij webhosting voor 24 euro per jaar moet je je ook sterk gaan afvragen wat nou de kwaliteit, service en uptime daarvan is.
Ik heb toch geen MS SQL nodig om ASP.NET te leren?
En voor 24 euro per jaar verwacht ik ook echt geen professionele kwaliteit webhost, maar dat heb ik toch ook totaal niet nodig... Als ik dat wel nodig had dan zou ik wel een betere host kopen, en dan was het kopen van een MS SQL database natuurlijk ook geen probleem. Als als als...

[Voor 20% gewijzigd door NickThissen op 31-05-2011 11:04]

Mijn iRacing profiel


Acties:
  • 0Henk 'm!

  • Precision
  • Registratie: November 2006
  • Laatst online: 17-01-2020
Als het toch development is, en het geen meerwaarde heeft om live te gaan. Waarom maak je zelf geen server in vmware met ms sql op? Het kost je dan niets en je kunt experimenteren met de laatste technieken.

Crisis? Koop slim op Dagoffer - Op zoek naar een tof cadeau?


Acties:
  • 0Henk 'm!

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Heb je al geprobeerd of de webserver jetsql drivers geinstalleerd heeft? Zie hier voor mogelijke connection strings die je kunt proberen:
http://www.connectionstrings.com/access

JetSQL ondersteunt zoals Rob al aangaf DDL statements, dus je zou redelijk in staat moeten zijn om de database remote aan te passen. Je zult inderdaad wel de scripts op de een of andere manier vanuit je web app moeten uitvoeren, bijvoorbeeld door een file te uploaden naar een standaard locatie en dan een update pagina openen die daar iets mee doet.

Ik ondersteun wel de algemene opmerking dat je beter af bent om gebruik te maken van SQL Server als je de keus krijgt, want access is niet echt (lees: echt niet) een multi-user database en de kans dat je op een bepaald moment tegen file locking issues aanloopt is vrij groot. Plus mogelijke corruptie, plus ongebreidelde groei van de mdb, zelfs als je data verwijdert. Daar zijn ook wel weer oplossingen voor, maar je bent beter af met een fatsoenlijke database server.
Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee