aug 292010
 

Flattr this!

Ibland kan det vara bra att även ta bort data ur en databas. Lägger man till villkor för vilka poster som ska tas bort så slipper man leta upp dom manuellt. Jag utnyttjar en tabell med dessa fält inklusive några poster för att exemplet ska fungera:

Det handlar alltså om ett adressregister där tabellen heter ”Adressregister”.

Gå in i menyn Verktyg/SQL och kopiera in allting som står inom citatet för att få tabellen Adressregister med medföljande data:

CREATE TABLE ”Adressregister”
(”ID” Integer PRIMARY KEY, ”Förnamn” char(50), ”Efternamn” char(50), ”Adress” char(50), ”Postnummer” char(50), ”Postadress” char(50));

INSERT INTO ”Adressregister”
(”ID”, ”Förnamn”, ”Efternamn”, ”Adress”, ”Postnummer”, ”Postadress”)VALUES(0, ’Peter’, ’Andersson’, ’Storgatan 4’, ’678 65’, ’Göteborg’);
INSERT INTO ”Adressregister”
(”ID”, ”Förnamn”, ”Efternamn”, ”Adress”, ”Postnummer”, ”Postadress”)VALUES(1, ’Sven’, ’Gustavsson’, ’Allmänna stigen 36’, ’566 56’, ’Örnsköldsvik’);
INSERT INTO ”Adressregister”
(”ID”, ”Förnamn”, ”Efternamn”, ”Adress”, ”Postnummer”, ”Postadress”)VALUES(2, ’Algot’, ’Blomkvist’, ’Västra gatan 25’, ’678 65’, ’Stockholm’);
INSERT INTO ”Adressregister”
(”ID”, ”Förnamn”, ”Efternamn”, ”Adress”, ”Postnummer”, ”Postadress”)VALUES(3, ’Emma’, ’Hultkvist’, ’Gränden 3’, ’765 56’, ’Göteborg’);
INSERT INTO ”Adressregister”
(”ID”, ”Förnamn”, ”Efternamn”, ”Adress”, ”Postnummer”, ”Postadress”)VALUES(4, ’Johanna’,’Evertsson’, ’Höjden 3’, ’566 88’, ’Falköping’);
INSERT INTO ”Adressregister”
(”ID”, ”Förnamn”, ”Efternamn”, ”Adress”, ”Postnummer”, ”Postadress”)VALUES(5, ’Evelina’, ’Jonasson’, ’Östra gatan 87’, ’766 65’, ’Stockholm’);
INSERT INTO ”Adressregister”
(”ID”, ”Förnamn”, ”Efternamn”, ”Adress”, ”Postnummer”, ”Postadress”)VALUES(6, ’Finn’,’Rutgersson’,’Skojarbacken 44′,’655 67′,’Linköping’);
INSERT INTO ”Adressregister”
(”ID”, ”Förnamn”, ”Efternamn”, ”Adress”, ”Postnummer”, ”Postadress”)VALUES(7, ’Anders’,’Andersson’,’Storgatan 12′,’678 65′,’Göteborg’);

Glöm inte att gå in i menyn Visa och ”uppdatera tabeller”.

Nu skulle jag vilja ta bort alla personer som bor i Stockholm från registret.

Som vanligt går vi in i menyn Verktyg/SQL och skriver sen in följande text:

DELETE FROM ”Adressregister”
WHERE ”Postadress”=’Stockholm’

Texten behöver knappast någon närmare förklaring mer än att jag återigen måste nämna att tabellnamn och fältnamn kräver dubbelfnuttar och värden enkelfnutt, dvs. det som hamnar efter lika-med-tecknet. Detta skiljer sig från program till program och Base är uppbyggt på detta sätt.

Så här ser tabellen ut efter man kört sql-kommandot:

Vi har fått bort alla personer från Stockholm från tabellen.

Nu försvårar vi det hela en smula. Jag vill nu ta bort alla personer som bor på Storgatan i Göteborg. Som vi kan se så finns här tre personer i nuläget. Problemet är att vi har två Storgatan med olika nummer på gatan. Alltså kan vi inte sätta ett lika-med-tecken.

Nu skriver vi därför in följande sql-kommando:

DELETE FROM ”Adressregister”
WHERE ”Postadress”=’Göteborg’ AND ”Adress” LIKE ’Storgatan*’

och tabellen ser ut på följande sätt efter vi kört kommandot:

I denna fråga använde vi oss av LIKE och satte sen värdet Storgatan med jokertecknet * efteråt. Detta betyder att alla poster som innehåller Göteborg från kolumnen Postadress samt där adressen börjar med Storgatan kommer att tas bort.

aug 292010
 

Flattr this!

Jag fick för ett tag sedan en fråga om hur man konverterar matematiska formler från MS Word till OpenOffice Writer. Jag brukar aldrig arbeta med formler och tyckte det var roligt att lära mig något nytt. Det blev därför en liten undersökning.

OpenOffice gör oftast ett bra jobb att konvertera MS Office filer. Störst problem blir det när Microsoft ändrar i hur MS Office hanterar filer. Jag upptäckte några obegripliga ändringar som inte bara ställer till det för OOo, utan även för de som använder MS Office.

I MS Office 2003 och äldre är det inga problem(?). Formler konverteras automatiskt tillsammans med text och annat. Formlerna blir formler. Om det inte fungerar direkt kan man gå in i under Verktyg – Alternativ – Läs in/spara – Microsot Office, bocka för Mathtype till OpenOffice.org Math…

Sedan är det bara att dubbelklicka på formlerna så öppnas Math inuti Writer. Det kan bli problem med vissa tecken eller avancerade funktioner. Jag har inte kunnat testa detta med alla versioner av MS Office eftersom jag inte äger någon licens. Äldre filer i .doc format jag hittat på nätet fungerar felfritt.

I MS Office 2007 och 2010 har detta gått sönder. Sparar man i .docx går det inte att få över formlerna till Writer. Det blir vanliga textdokument med formlerna som rappakalja.

Formler i .docx dokument blir rappakalja i Writer. Litet märkligt eftersom Microsoft betonar att OOXML formatet är till för att underlätta samarbete...

Sparar man i .doc förvandlar Word formlerna av någon anledning till bilder!

Sparar man formler i .doc format i MS Office 2007/2010 får man detta varningsmeddelande. Starkt av Microsoft att inte klara av sina egna filformat!

De blir snygga att titta på, men går inte att redigera som formler i Writer.

Formlerna blir bilder. Snygga att titta på och hantera som bilder. De går inte längre att redigera som formler

De går givetvis inte heller att redigera i MS Office annat än som bilder. I praktiken innebär detta att det är stora problem att samarbeta för dem som använder formler mellan Office 2003, som inte läser .docx filer rakt av och Office 2007/2010 som tar sönder .doc filer med formler.

Lösningen för OOo att uppdaterat till servicepack 2 i Office 2007 som gör att man nödtorftigt kan spara i ODF-format och spara filerna så. Office 2010 hanterar ODF-formatet någorlunda från start. Då går formlerna att redigera som formler i Writer. Eftersom stödet för ODF inte är det bästa, kan det finnas andra saker i dokumenten som inte fungerar.

Vinnare är ODF. Då filen sparas i .odt i MS Office går den att öppna och redigera som tänkt i Writer

Varför Microsoft tagit sönder formeleditorn då man sparar i .doc är en gåta. Sannolikt är det just för att förhindra samarbete mellan Office 2003 och 2007/2010. Genom det tvingar man användare att uppdatera till ny version av MS Office för stora pengar. Min lilla undersökning visar hur osäkra Microsofts filformat är. Du har inga som helst garantier att filer går att öppna och fungerar som tänkt om några år.

Det enda raka är att lämna den vansinniga karusellen med påtvingade uppdateringar och slutna filformat och börja använda vettiga program med öppna, framtidssäkra filformat!