26. august 2004 - 23:36Der er
43 kommentarer og 1 løsning
access og My SQL
Jeg har tilknyttet en access applikation til en my SQL database - men nu har jeg problemer med mine afskrydningsbokse, fordi de ingår i en masse hændelser og beregninger - De har automatisk fået værdien/ felt egenskaben tinynt i My sql - Det gør at udtræk - forespøgsler m.v. ikke virker efter hensigten... Har virkelig brug for noget hjælp;-)
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Slettet bruger
26. august 2004 - 23:51#1
Du mener vel tiny-int? Int (Integer) er heltal. Og tiny-int er (hvis jeg ikke husker helt forkert) et heltal med en øvre grænse. Og i Access kan du også bestemmt felttypen til at være et heltal, så det skulle ikke være det helt store problem. :-)
jamen det er ved mine afkrydsningsbokse. Jeg har konventeret en række access tabeller til My sql og nu virker mine beregninger ikke længere - hvad skal felt egenskaben være i my sql hvis det er til en afskydsningsboks??
Synes godt om
Slettet bruger
27. august 2004 - 01:58#4
En afkrydsningsboks er bare et ja/nej-felt i databasen. Men måske der er gået noget galt, da du konverterede database? Mange har haft lign. problemer.
I Access returnerer et ja/nej-felt værdierne 0 og -1, mens Tinyint kun kan have positive tal (0-255). Hvis du binder et ja/nej-felt til en tinyint får du således værdierne 0 eller 1 (i stedet for -1).
En checkboks returnerer stadig 0 og -1, hvorfor søgninger går galt.
Man kan løse problemet ved f.eks. at bruge Abs-funktionen, som fjerner fortegn:
Thomas problemet er at mine felter i access inden konventering blot er en afkrydsningsboks - mine beregninger vikrer ikke mere - Er det noget jeg skal gøre i access inden jeg konventere det! feks. give det en standard værdi eller.. Mine returnere ikke -1 og 0 - men blot en afkrydsning (inden konventering) - HVilken felt egenskab ville du vælge i My sql til et Ja/nej felt
En afkrydsningsboks i Access svarer til 0 ved blank og -1 ved afkrydset, ligesom sand/true = -1 og falsk/false = 0. Afkrydsningsboksen er blot den måde, som du vælger at vise dataene på.
Hvis du ændre datatypen til Integer (Heltal) i Access inden konverteringen burde det fungere, da My SQL også kender Integer. Integer er dog en 'stor' datatype til et ja/nej-felt. Der vil således bruges væsentlig mere plads en nødvendigt, ligesom søgninger kan blive langsommere. Men hvis datamængderne tillader denne fråds, så er det den nemmeste løsning.
Alternativt skal dine beregninger og forespørgsler laves om :o(
Ja, Integer er heltal. I access fanger du den ved at vælge tal->Heltal.
Det er kun i Access, at man først skal vælge tal og dernæst angive hvilken type tal. Alle andre databaser (som jeg kender) vælger man bare Integer, Tinyint, Date eller hvad det måtte være.
Jeg har nogle felter som defult skal være 0,00 - men de indeholder ingen værdi når jeg taster ind - dette giver problemer fordi de også er en del af beregingerne! Felterne er helt tomme - Jeg ved ikke om jeg gør det her rigtig - har efterhånden fumlet med det i rigtig lang tid..
Jeg har fundet fejlen det er simpelhen pga de feleter jeg har som ikke får nogen værdi - MEn jeg ved ikke hvordan man i My SQl sætter en standard værdi - Jeg har prøvet med defult, men det virker ikke..
Hmm, problemet med 0 som standardværdi kan løses ved at angive standard-værdien på feltet i My SQL.
Er det Helligdag, som er ja/nej-feltet?
Kan du aflæse hvilken værdi, som står i Helligddag? Står der 1 eller -1?
Hvis du skrev alle lignende beregninger om til denne omvendte (som også bør bruges i alm. Access): ([Udtryk2]*[Timesats]+[Modregning Timer])*IIf([Helligdag]=0;1;1,25)
eller blot ([Udtryk2]*[Timesats]+[Modregning Timer])*IIf([Helligdag];1,25;1)
hvis du arbejder med sammenkædet tabeller vha ODBC, skal du slette sammenkædningen i Access og oprette den igen hver gang du har lavet ændringer på My SQL-serveren.
Ialt kr ved timer: ([Udtryk2]*[Timesats]+[Modregning Timer])*IIf([Helligdag]=-1;1,25;1) virker fint når jeg blot får udfyldt de tomme felter
-
I My sql er de tomme felters defult sat til 0 og der er tilladt NUll værdi - Lenght = 10 - Det var oprindeligt et Tal/Valuta i Access (kr.)i My sql står det til et decimal tal -
valuta i Access er i virkeligheden bare et reelt tal med et bestemt format. Så det er fint nok, at My SQL gemmer den som decimaltal. Du skal så bare fremover sikre dig, at når du bruger feltet, skal du manuelt angive Valuta i formattet.
Felterne er total løst i måde forespøgsler og formular - og når hef forsøger at indtaste det i tabellerne i accsshvor der er link til My SQL - Så kommer #Slettet Der er et autonummeringsfelt på
dit indlæg 27/08-2004 11:11:39 blev vist skrevet lidt hurtigt - det krævede lige lidt detektivarbejde og en gennemgang af hver tast på tastaturet at regne ud, hvad du mente :o)
At der ikke er nogen default-værdi, skyldes at My SQL først sætter dem ind, når posten gemmes.
Men jeg forstår ikke hvorfor felterne er låst. Det sker typisk kun hvis man ikke har fået gensammenkædet efter en ændring eller hvis der f.eks. mangler indekser på tabellen. Men oftets er alle felter, som låses.
Der kan generelt godt være mange drillerier i fbm konvertering til en anden backend :o(
JEg tror jeg har fundet løsningen normalt behøver man ikke at gemme id i en forsp. i access - men når det er fra my sql skal alle ide også indgå i forespøgslen..
Noget andet, jeg kom til at tænke på er Timestamp.
Hvis du oplever andre problemer med at redigere i en post, kan du oprette et ekstra felt i tabellen (kald det hvad du vil) og give det datatypen "Timestamp" (jeg tror, at den hedder det samme på My SQL, men er ikke helt sikker). Dette felt skal af og til medtages, da serveren ellers kan have problemer med at skelne postændringer fra hinanden.
Den kommer med en fejl hvor den siger ODBC kunne ikke sammenkæde til tabellen "modregning" - fordi timeregid ikke kan have værdien NULL - Timeregid i modregning er det samme som ID i timereg tabellen
jo det kan du godt, men hvordan....det ved jeg ikke pt (jeg har ikke selv my sql installeret mere). Men det er heller slet ikke sikkert, at det er det, som er problemet.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.