Hvordan skriver og læser jeg til/fra en Access database med "c++ Borland Builder 5"? For at kunne læse og skrive til databasen, skal jeg have en connection til databasen, hvordan foregår det?
Jeg kender til c++, men det er første gang jeg sidder og arbejder i borland builder, så i må meget gerne være detaljeret i jeres forklareing....
jeps bagefter kan du bruge en TQuery hvor du kan skrive SQL til at hente gemme data.
I TQuery's object insector vælger du under databasename din database komponent (i den liste der åbnes skal du gerne kunne finde navnet på din databse komponent).
Også skal du i dit program eksekvere din sql og behandle resultat sættet læs evt i builer hjælpen om TQuery komponenten da den kan mange ting
Alt efter hvad du skal lave kan du måske med fordel bruge en datasource sammen med din Tquery og nogle af builderens dataware komponenter (de ligger under fanen data controls) det kan gøre det meget nemt at lave database applikationer HVIS det ikke er alt for komplekst det man skal lave.
Er det muligt at lave alt det med med læs og skriv til database fra en Classe som min GUI så kan bruge? Således at jeg kan spare på kode? Det er i virkeligheden den måde jeg godt kunne tænke mig at lave det, hvis du forstår min tanke?... Hvordan kan jeg lave det på den måde? Kan du skrive et eksempel på sådan en classe?(husk at jeg ikke har rodet med borland builder før :o))
start med at lave et datamodule hvor du ligger din TDatabase komponent samt Dine TQuery f.eks. en til at Insert og Select
De næste 3 funktioner arbejder på Database komponenten short __fastcall Data::StartTransaction() { if(!Database->InTransaction) { Database->StartTransaction(); return 1; }
Funktion til at inserte short __fastcall Data::ins() { StartTransaction();
try{ // Felt1..4 er variabler der er defineret i din SQL (TQuery) qIns->Params->ParamByName("Felt1")->AsString = "1"; qIns->Params->ParamByName("Felt2")->AsString = "2"; qIns->Params->ParamByName("Felt3")->AsString = "3"; qIns->Params->ParamByName("Felt4")->AsString = "4"; qIns->ExecSQL();
Sql'en du skal skrive, skrives i TQuery klik på SQL punktet i object inspector Håber det hjælper da det meste af det du skal lave foregår i object inspector så det er lidt svært at lave eksemple kode jeg kan vise dig her.
Kan man også ligge TQuery og dataSource componenter i en classe og fra GUI´en kalde disse funktioner? Jeg vil gerne have lagt så meget i classer for sig selv, som muligt....
Jeg tænkte på om man kunne ligge TQuery og de andre database componenter i en classe og som de funktioner du skrevet til mig (08/08-2003 15:59:18) kan bruge.... Således at man i GUI(Interfacen) ikke behøver at oprette flere TQuery og DataSource Objekter, man at man fra én classe kan kalde den samme objekt, og samtdig bruge de funktioner som man har oprettet.... Jeg håber at du fårstår...
du skal kun bruge en database komponent (medmindre at du skal arbejde på flere databaser af gangen) du kan godt nøjes med en TQuery component så skal du bare skifte Sql ud på Tquery componenten for hvert kald det vil du kunne gøre således
Query1->Close(); // lukker queryen Query1->SQL->Clear(); // clear sql listen Query1->SQL->Add("Select from adresse where Navn = 'test'"); // tilføjer ny sql Query1->ExecSQL(); // fyre sql'en af mod databasen
ups når det er en select så skal du bruge Query1->Open(); ellers kan du ikke få et resultatsæt og arbejde med du bruger Query1->ExecSQL() når det er insert, delete eller update
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.