[SQL / Access] grootte van veld geeft schrijfconflict

Pagina: 1
Acties:
  • 160 views sinds 30-01-2008
  • Reageer

  • Gamerkoe
  • Registratie: Maart 2003
  • Laatst online: 26-11-2025
Ik ben bezig met een database die ik in SQL heb gemaakt. vanaf mijn computer heb ik vervolgens met één van de nieuwste ODBC koppelingen (ODBC 3.51) een ODBC koppeling gemaakt. Daarna heb ik de tabellen gekoppeld zodat deze in access komen.

Maar nu krijg ik telkens een schrijfconflict, dat een andere gebruiken ook wat wil veranderen. Ik heb al gezocht op GoT, maar geen van de topics zijn echt hetzelfde.
Ik eerste instantie dacht ik dat het probleem lag bij het formulier waarmee ik deze tabel wijzig. Nadat ik deze helemaal had uitgekleed en gestript, kwam ik erachter dat zodra ik gegevens direct in de tabel wijzig, dat ik dan ook het schrijfconflict krijg.
Na verder onderzoek ben ik erachter gekomen, dat zodra ik het getal (wat in het veld staat en hoger is dan 2 of 3 decimalen) wil wijzigen, dat ik dan een error (schrijfconflict) krijg. Dus als er in het veld '39872' staat, en ik wil dit vervangen door een ander getal (bijvoorbeeld '30'), dan krijg ik het schrijfconflict.

Vervolgens heb ik ook geprobeerd om in SQL het veld type te veranderen (float, decimal, int), maar dit helpt ook niet.

Mijn vraag was of iemand die probleem ook ooit heeft gehad, en natuurlijk of iemand weet hoe ik dit kan oplossen. als het probleem nog niet duidelijk is, hoor ik het wel.. :)

GreetZ Gamerkoe

20x SF170s + SMA SB3000TL-21 | PV Output


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Je hebt een database in SQL gemaakt. In MS SQL server, of heb je een SQL script gemaakt om een database aan te maken en draai je bijvoorbeeld in MSDE of MySQL? Wat heeft Access er dan mee te maken? Gebruik je dat als frontend? Hoezo geeft de grootte van het veld een schrijfconflict (topictitle)? Krijg je altijd de melding dat een andere gebruiker de recordset ook wil aanpassen, of krijg je soms ook andere foutmeldingen? Controleer ook de instellingen rondom je verbinding. Locking type enzo.

Verder zou relevante code (die de foutmelding veroorzaakt, hoe je de verbinding opbouwt) kunnen helpen bij het krijgen van inzicht in je probleem.

[ Voor 11% gewijzigd door OZ-Gump op 03-02-2005 12:23 ]

My personal website


  • Gamerkoe
  • Registratie: Maart 2003
  • Laatst online: 26-11-2025
OZ-Gump schreef op donderdag 03 februari 2005 @ 12:22:
Je hebt een database in SQL gemaakt. In MS SQL server, of heb je een SQL script gemaakt om een database aan te maken en draai je bijvoorbeeld in MSDE of MySQL? Wat heeft Access er dan mee te maken? Gebruik je dat als frontend? Hoezo geeft de grootte van het veld een schrijfconflict (topictitle)? Krijg je altijd de melding dat een andere gebruiker de recordset ook wil aanpassen, of krijg je soms ook andere foutmeldingen? Controleer ook de instellingen rondom je verbinding. Locking type enzo.

Verder zou relevante code (die de foutmelding veroorzaakt, hoe je de verbinding opbouwt) kunnen helpen bij het krijgen van inzicht in je probleem.
Ik heb een database in MS SQL server (versie 4).
access gebruik ik inderdaad als front-end. (wat ik vergeten was om erbij te zetten is dat ik in een mysql client (MySQL-Front of SQLyog) WEL de getallen kan veranderen naar hogere waardes (dan 3 decimalen :? )) ik krijg wel altijd dezelfde foutmelding..

Afbeeldingslocatie: http://www.drankbakken.nl/pict/foutmelding.JPG


relevante code is denk ik al gegeven. ik gebruik een ODBC koppeling tussen access en mysql

GreetZ

20x SF170s + SMA SB3000TL-21 | PV Output


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

MS SQL Server != MySQL. Welke is het nou?
Met relevante code bedoel ik de programmeercode (in Access VBA) die je gebruikt om waardes in de database te zetten of op te halen. Ik vraag me ook erg af of je nou Access als frontend gebruikt op een MySQL database?

Heb je gekeken naar het lockingtype van je verbinding? Zijn er nog meer mensen of applicaties op je eigen PC die dezelfde database op dat moment gebruiken? En zo ja, is er een mogelijkheid die te sluiten of een read-only verbinding te geven?

edit:
Uit de FAQ:
Wij tweakers doen elkaar permanent de groeten. Het is dus niet nodig om steeds ruimteverspillende "greetz [user]" of iets dergelijks onder je post te plakken. Als je per se zoiets wilt, kun je daar je signature voor gebruiken.
;)

[ Voor 25% gewijzigd door OZ-Gump op 03-02-2005 13:12 ]

My personal website


  • Gamerkoe
  • Registratie: Maart 2003
  • Laatst online: 26-11-2025
Ik heb het even opgezocht en het is: "MySQL-Version 4.1.8 "

Over de relevante codes.. Zat er over na te denken, maar in principe heeft dit helemaal geen zin. :P Het is namelijk zo dat ik met access (mijn front-end) door middel van een ODBC koppeling tabellen koppel tussen MySQL en Access.. Access zet dan de gekoppelde tabellen onder het tabblad 'Tabellen'. Maar Access gebruikt deze toch alleen voor de koppeling (hier staat alleen info waarmee welke tabel de koppeling maakt met de MySQL tabel.. :? ) Of heb ik het dan verkeerd?? het gaat dus zelfs in de gekoppelde tabellen al verkeerd.

Het formulier heb ik gewoon met de wizard gemaakt.. in het hoofdformulier staat een keuzelijst die een aantal gegevens ophaald.
code:
1
2
3
modulestring = "SELECT M.module_id AS NR, MT.naam AS Naam, M.prijs_een AS Eenmalig, M.korting_een AS Korting, " & _
"M.prijs_maand AS Maand, M.korting_maand AS Korting_ " & _
"FROM module M, module_type MT WHERE M.module_type_id = MT.module_type_id AND M.order_id = " + strordernummer + ";"
Dit is de code van de keuzelijst. deze word later in de VBA code als rowsource ingesteld.

Daarnaast heb ik een recordset gemaakt welke apparte gegevens ophaald, om daar vervolgens een subtotaal van uit te rekenen.
code:
1
subtotaalstring = "SELECT SUM(M.prijs_een) AS een, SUM(M.prijs_maand) AS maand FROM module M WHERE M.order_id = " + strordernummer + ";"
In een verder stuk van de code worden de gegevens in 2 vakjes gezet om een subtotaal te kunnen berekenen.

Misschien dat je hier wat aan hebt, maar ik verwacht dat de fout niet in deze code zit.
Het lockingtype kan ik nog niet vinden, heb je enig idee waar ik dit kan vinden? ik heb al wel snel de instellingen van de ODBC koppeling nagekeken, maar (nog) niks gevonden. het is zowieso NIET zo dat er meerdere gebruikers op zitten. Read-only verbinding is het ook niet.. Daarnaast is het ook niet mogelijk omdat je velden waar een "klein" getal (getallen met 3 decimalen of kleiner) WEL kan wijzigen :? . Vind het een vaag verhaal, en heb van alles al geprobeerd, zoals het veranderen van de tabel naam, nieuwe tabel, nieuwe tabel + nieuwe gegevens,

GreetZ :)

20x SF170s + SMA SB3000TL-21 | PV Output


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Waar jij over decimalen spreekt, bedoel je daar posities? Oftewel 153 gaat goed, maar 4578 gaat fout? Wat voor veldtype heeft het veld dat je probeert aan te passen in de originele tabel?

My personal website


  • Gamerkoe
  • Registratie: Maart 2003
  • Laatst online: 26-11-2025
OZ-Gump schreef op donderdag 03 februari 2005 @ 13:48:
Waar jij over decimalen spreekt, bedoel je daar posities? Oftewel 153 gaat goed, maar 4578 gaat fout?
... knip...
Yup.. ik weet het .. vaag :P :/

Edit: ik heb elk bekend type gebruikt -> INT, FLOAT en DOUBLE.. dit maakt niks uit

Als iemand anders ideen heeft.. GRAAG ;)

[ Voor 23% gewijzigd door Gamerkoe op 03-02-2005 14:33 ]

20x SF170s + SMA SB3000TL-21 | PV Output


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Probeer eens wat er gebeurt als je zegt dat je het bewerkte record in het betreffende formulier wilt locken? Dit kan bij de eigenschappen van het formulier:
Afbeeldingslocatie: http://img237.exs.cx/img237/774/got2005020314ho.jpg

My personal website


  • Gamerkoe
  • Registratie: Maart 2003
  • Laatst online: 26-11-2025
_/-\o_ _/-\o_ _/-\o_ Hij doet het :)

Ik zal nog even de oplossing hieronder neerzetten voor mensen die er in de toekomst nog last van krijgen :+

Je kan dit probleem oplossen door een extra veld aan te maken. Je geeft aan dit veld de waarde/type "timestamp" (en NOT NULL). Dit veld maakt automatisch een datum aan waarop een verandering plaatsvind, of wanneer het record is aangemaakt.
En op de één of andere manier helpt dit :)

Ik heb de link geplaatst WAAR ik het gevonden heb:
http://camden-www.rutgers...mysql/manual_Clients.html Het is hoofdstuk "8.3.4 How to Report Problems with MyODBC".

Veel suc6! >:)

Edit: Thanks OZ-Gump ;)

[ Voor 5% gewijzigd door Gamerkoe op 03-02-2005 15:25 ]

20x SF170s + SMA SB3000TL-21 | PV Output

Pagina: 1