SQLHiA Kap 12 Dynamisk SQL. SQLHiA SQLHiA FlerbrukersystemClient / Server Database DBMS Application_2 SQL-Request Data Application_3 Application_1 ClientServer.

Slides:



Advertisements
Liknende presentasjoner
Mer om SQL-spørringer og funksjoner
Advertisements

Hans Olav Norheim
SQLHiA DAT 2800 Databaser I Flerbrukerproblematikk.
Mange til mange sammenhengen
Kap 02 Relasjonsdatabaser
Høgskolen i Oslo Webprogrammering SQL og databaser del 3.
Java database persistence framework.  SELECT by FROM postnr AS p WHERE ( SELECT DISTINCT postnr FROM addr AS a WHERE user.adrId = a.Id ) = p.postnr;
Avansert SQL og problemløsning
Databaser Verktøybok om Access med innslag av Frontpage: Snarveien til Access.
Datamodellering og databaser Else Lervik, oktober 2011 Forelesning 9, uke 41 SQL, del 2 Eksempelbaseside 2 Virtuelle.
Objektorientert programmering i PHP del 2
Java 14 Et eksempel fra bioinformatikk: analyse av biologiske sekvenser Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet.
Inge Os Sales Consulting Manager Oracle 10 g Server.
IS-102 Klassedefinisjoner
Databasehåndtering med MySQL
1 Øvingsforelesning 7 Kai Olav Ellefsen. 2 I dag… Databaser: Databasedesign og SQL JSP: Koble databasen til nettsiden Kai Olav Ellefsen, NTNU, 2010.
SQL The questing beast Sir Thomas Mallory. Codds krav 5.Krav om omfattende språk for datahåndtering Det må finnes et relasjonelt språk som støtter datadefinisjon,
Jæger: Robuste og sikre systemer INF150 Programmering mandag 2.10 Default values – standardverdier ved oppstart MER OM: Sub-prosedyrer og sub-funksjoner.
Datamodellering og databaser Else Lervik, oktober 2012 Forelesning 11, uke 44 Å programmere databasetjeneren – JavaDB.
Datamodellering og databaser Else Lervik, oktober 2011 Forelesning 9, uke 41 SQL, del 2 Eksempelbaseside 2 Virtuelle.
LC238D Datamodellering og databaser Else Lervik, september 2011 Forelesning 6, Uke 38 Objektorientering i ER-modeller.
Sqlite Et lite eksempel på en SQL- database. SQL kan startes på ulike måter Kommandolinjeversjon or Windows –Programmet må innstalleres Hentes fra
Standard databasespråk
1 Kap 02 Relasjonsdatabaser. Data-organisering - Manuelt Ansatte Pasienter Utstyr Økonomi Avdelinger RøntgenOnkologisk.
SQLHiA DAT 2800 Databaser I Prosedyrer / Triggere.
1 Kap 05 Modellator Datamodelleringsverktøy. Modellator - Enkelt eksempel EntitetRelasjon.
SQLHiA Transaksjoner. SQLHiA TransaksjonDefinisjon En transaksjon er en serie av en eller flere SQL-statement som til sammen danner en logisk enhet. Med.
1 Kap 08 Kø. 2 Kø - Definisjon En kø (eng queue) er en lineær struktur hvor elementer kan innsetttes kun i den ene enden av listen, kalt bak, og fjernes.
1 Information search for the research protocol in IIC/IID Medical Library, 2013.
Repetisjon av JSP Variabler, tabeller, if-setninger, for/while-løkker
Høgskolen i Oslo Webprogrammering Filbehandling i PHP.
Structured Query Language Kræsj-kurs
Høgskolen i Oslo Webprogrammering Ajax og PHP. I dag l Hvordan få en bedre brukeropplevelse via Ajax- script l Gjennomgang av kode l Oppgaveløsning på.
Høgskolen i Oslo Webprogrammering Java-scripting 2 Klientvalidering.
Triggere Mutasjoner i basen. Triggers Triggers are stored procedures that execute automatically when something (event) happens in the database: : data.
Instead-of-trigger Faglig forum. Instead-of-trigger Problem: En har et VIEW som består av mange JOINs. Komplekst å oppdatere alle tabellene som inngår.
Eksempel på SQL ”SQL-setninger” har en struktur som likner på ”naturlig språk”, med ”verb, subjekter og adjektiver”. SQL-setningene begynner alltid med.
DATABASE: Oppgave 2 et medlemsregister for en idrettsklubb med flere idrettsgrener (fotball, håndball, osv). klubben ønsker å lagre informasjon om medlemmenes.
Dynamiske nettsider PHP Del 4 – Eksterne datakilder.
Dynamiske nettsider PHP Del 2 – Kontrollstrukturer.
Databasen III Nodekoblinger og tags. Mer om proptype Spesifikasjonen for egenskaper. Verdikolonner: value, number, url, datetime, lang, ref. Kan egenskaper.
Introduksjon I126 Databaser og datamodellering Høsten 2000 Institutt for informatikk Universitet i Bergen.
Fødselsdato (dmå) er født har lønn Ansatt (ansnr) Beløp (NKr)+ Telefon
KAP. 12 Hypertext Implementasjon Roy Kjellid & Tor Andre Kvinge Inf 329.
Vi viser litt fra CD’en Norges Eiendommer. Hvordan en rapport defineres og skrives ut.
Linq To SQL Fagdag 20. November DataContext  DataContexten er mappingen mot databasen –Generer objekter for alle entiteter (tabeller), med properties.
Database tilgang Opret forbindelse til din Ms SQL database inde i Visual Studio fra Server Explorer vinduet.
Tabeller Dette er en tabell, eller array. Den kan defineres sånn som dette: public int[] heltallsTabell = new int[11]; //Her er 11 tabellens lengde for.
1 Java Database Connectivity (JDBC) Norvald H. Ryeng
Upload av bildefiler Utdrag fra ImageIn Ved Kirsten Klæbo Tirsdag 25/11-03.
Primary French Presentation 10 Colours L.I. C’est de quelle couleur?
Forelesning 1 Hva er historie?. Om historien som fag og historien som forestillingsverden.
1 Java Database Connectivity (JDBC) Norvald H. Ryeng
Expression web. Front Page vs Expression web ● Front Page er ute ● Undervisning i Front Page er undervisning i gammeldags teknologi i forhold til standarder.
Oversikt Access Hva en bør beherske så langt. Tabeller Felt Typer (heltall, desimaltall, tekst, Boolean) Primary Key.
Boregnskapet og rammebetingelsene for revisjon i konkursbo
OpenRefine.
Group theory I dette kapitlet skal vi se på utvidelse av lister som vi behandlet generelt i kap 04. Vi skal nå benytte klassehierarkiet som vi utviklet.
PL/SQL تعريف المتغيرات
فصل هفتم شاخص گذاری.
Ә.Тәжібаев “Сырдария ” өлеңі ашық сабақ 7-сынып
Use of ShipRep for Data exchange in the Port of Trondheim
Titteloppsett Undertittel.
Vaccine Delivery in Developing Countries
Қарсылықты бағыныңқы сабақтас
Екпетал мектеп – балабақшасы Ана тілі 2 класс Өткізген: Г
Kom i gang med Alma Analytics i dag!
“Сыни тұрғыдан ойлауға оқыту” модулі сабақтар топтамасында орындаған: бастауыш сынып мұғалімі:Алимбаева Алмаш Иренгалиевна санаты ІІ.
Database.
Коучинг тақырыбы: “Оқыту мен оқудағы жаңа әдіс-тәсілдер”
Utskrift av presentasjonen:

SQLHiA Kap 12 Dynamisk SQL

SQLHiA

SQLHiA FlerbrukersystemClient / Server Database DBMS Application_2 SQL-Request Data Application_3 Application_1 ClientServer

SQLHiA Resultatsett Database DBMS Application SQL-Request Data SELECT SNr, Navn, PNr FROM Selger WHERE PNr = 6400 SNrNavnPNr 5Nilsen5002 2Olsen6400 1Hansen9000 4Berg6400 Tabellen Selger SNrNavnPNr 2Olsen6400 4Berg6400 Resultatsett ClientServer Fetch RowID FetchThrough

SQLHiA RowID RowIDSNrNavnPNr CAAD5Nilsen5002 BACV2Olsen6400 ERCB1Hansen9000 EADD4Berg6400 Selger (ID = SNr) SNrNavnPNr 5Nilsen5002 2Olsen6400 1Hansen9000 4Berg6400 Selger (ID = SNr) Et eksempel på en 3NF-tabell Selger med tre kolonner SNr, Navn og PNr RowID er en ekstra kolonne i hver tabell som alltid kommer i tillegg til de kolonnene vi eksplisitt definerer. RowID er entydig for hver rad og fungerer som en slags identifikator.

SQLHiA

SQLHiA Statisk SQL SNrIDNavnPNr 5Nilsen5002 2Olsen6400 1Hansen9000 4Berg6400 Selger (ID = SNr) SNrID Navn PNr Select SELECT SNrID, Navn, PNr FROMSelger Set sSelect = ‘SELECT SNrID, Navn, PNr INTO :dfnSNrID, :dfsNavn, dfnPNr FROM Selger’ Call SqlPrepare ( hSql, sSelect ) Call SqlExecute ( hSql ) Call SqlFetchNext ( hSql, nFetch )

SQLHiA Statisk SQL SNrID Navn PNr Select SELECT SNrID, Navn, PNr FROMSelger SNrID Navn PNr 2 Select SELECT Navn, PNr FROMSelger WHERE SNrID = :dfnSNrID SNrID Navn PNr 6400 Select SELECT SNrID, Navn FROMSelger WHERE PNr = :dfnPNr SNrID Navn PNr Nilsen Select SELECT SNrID, PNr FROMSelger WHERE Navn = :dfsNavn SNrID Navn PNr Nilsen 6400 Select SELECT Navn, PNr FROMSelger WHERE Navn = :dfsNavn AND PNr = : dfnPNr SNrID Navn PNr %sen 6400 Select SELECT SNrID, Navn FROMSelger WHERE Navn LIKE ‘ || ‘\’’ || dfsNavn || ‘\’’ AND PNr = :dfnPNr

SQLHiA Fra Statisk SQL til Dynamisk SQL SNrID Navn PNr 6400 Select SELECT SNrID, Navn, PNr FROMSelger WHERE PNr = :dfnPNr Set sSelect = ‘SELECT SNrID, Navn, PNr INTO :dfnSNrID, :dfsNavn, dfnPNr FROM Selger WHERE PNr = :dfnPNr’ Set sSelect = ‘SELECT ‘ || sColumn || ‘ INTO ‘ || sInto || ‘ FROM ‘ || sFrom ‘ WHERE ‘ || sWhere frmSelger sColumn = ‘SNrID, Navn, PNr’ sInto = ‘ :dfnSNrID, :dfsNavn, :dfnPNr’ sFrom= ‘Selger’ sWhere= ‘PNr = :dfnPNr’

SQLHiA Dynamisk SQL-Initier SQL-variable SNrID Navn PNr 6400 Select frmSelger dfnSNrID dfsNavn dfnPNr pbSelect On SAM_Click Call SalSendMsg ( hWndForm, PAM_SELECT, 0, 0 ) frmSelger Message Actions On PAM_SELECT Set sColumn = ‘‘ Set sInto= ‘‘ Set sFrom= ‘‘ Set sWhere= ‘‘ Call SalSendMsg ( hWndForm, PAM_SQL, 0, 0 ) Call SalSendMsgToChildren ( hWndForm, PAM_SQL, 0, 0 ) 1 2

SQLHiA Dynamisk SQL-Bestem tabell-navn SNrID Navn PNr 6400 Select frmSelger dfnSNrID dfsNavn dfnPNr pbSelect frmSelger Message Actions On PAM_SELECT Set sColumn = ‘‘ Set sInto= ‘‘ Set sFrom= ‘’ Set sWhere= ‘‘ Call SalSendMsgTo ( hWndForm, PAM_SQL, 0, 0 ) Call SalSendMsgToChildren ( hWndForm, PAM_SQL, 0, 0 )... On PAM_SQL Call SalGetWindowText ( hWndForm, sWName, 20 ) sFrom = SalStrRight ( sWName, SalStrLength(sWName) - 3 ) sWName = ‘frmSelger’ sFrom = ‘Selger’

SQLHiA Dynamisk SQL-Bestem SQL-variable for dfnSNrID SNrID Navn PNr 6400 Select frmSelger dfnSNrID dfsNavn dfnPNr pbSelect frmSelger Message Actions On PAM_SELECT Set sColumn = ‘‘ Set sInto= ‘‘ Set sFrom= ‘’ Set sWhere= ‘‘ Call SalSendMsgTo ( hWndForm, PAM_SQL, 0, 0 ) Call SalSendMsgToChildren ( hWndForm, PAM_SQL, 0, 0 )... sColumn= ‘ SNrID ’ sInto= ‘ :dfnSNrID ’

SQLHiA Dynamisk SQL-Bestem SQL-variable for dfsNavn SNrID Navn PNr 6400 Select frmSelger dfnSNrID dfsNavn dfnPNr pbSelect frmSelger Message Actions On PAM_SELECT Set sColumn = ‘‘ Set sInto= ‘‘ Set sFrom= ‘’ Set sWhere= ‘‘ Call SalSendMsgTo ( hWndForm, PAM_SQL, 0, 0 ) Call SalSendMsgToChildren ( hWndForm, PAM_SQL, 0, 0 )... sColumn= sColumn || ‘, ‘ || ‘ Navn ’ = ‘ SNrID, Navn ‘ sInto= sInto || ‘ :dfsNavn ’ = ‘ :dfnSNrID, :dfsNavn ‘

SQLHiA Dynamisk SQL-Bestem SQL-variable for dfnPNr SNrID Navn PNr 6400 Select frmSelger dfnSNrID dfsNavn dfnPNr pbSelect frmSelger Message Actions On PAM_SELECT Set sColumn = ‘‘ Set sInto= ‘‘ Set sFrom= ‘’ Set sWhere= ‘‘ Call SalSendMsgTo ( hWndForm, PAM_SQL, 0, 0 ) Call SalSendMsgToChildren ( hWndForm, PAM_SQL, 0, 0 )... sColumn= sColumn || ‘, ‘ || ‘ PNr ’ = ‘ SNrID, Navn, PNr ‘ sInto= sInto || ‘ :dfnPNr ’ = ‘ :dfnSNrID, :dfsNavn, :dfnPNr ‘ sWhere= sWhere || ‘ PNr = ‘ || ‘ :dfnPNr ‘ = ‘ PNr = :dfnPNr ‘ = ‘ PNr = 6400 ‘

SQLHiA Dynamisk SQL-Bestem SELECT-statement sSelect SNrID Navn PNr 6400 Select frmSelger dfnSNrID dfsNavn dfnPNr pbSelect frmSelger Message Actions On PAM_SELECT... Call SalSendMsgToChildren ( hWndForm, PAM_SQL, 0, 0 ) Set sSelect = ‘SELECT ‘ || sColumn || ‘ INTO ‘ || sInto ‘ FROM ‘ || sFrom ‘ WHERE ‘ || sWhere... sColumn= sColumn || ‘, ‘ || ‘ PNr ’ = ‘ SNrID, Navn, PNr ‘ sInto= sInto || ‘ :dfnPNr ’ = ‘ :dfnSNrID, :dfsNavn, :dfnPNr ‘ sWhere= sWhere || ‘ PNr = ‘ || ‘ :dfnPNr ‘ = ‘ PNr = :dfnPNr ‘ = ‘ PNr = 6400 ‘ sSelect=SELECTSNrID, Navn, PNrINTO :dfnSNrID, :dfsNavn, :dfnPNr FROM Selger WHERE PNr = 6400

SQLHiA

SQLHiA Generering av dynamisk SQL-statement PAM_SELECT PAM_UPDATE... SQL Build PAM_SELECT PAM_UPDATE clsWnd Class Variables: sSql, sColumn, sInto, sTable, sWhere, sOrder,... Mdi Frm

SQLHiA

SQLHiA Klasser (1) clsSqlHandleStruct clsSqlDbAccess clsWnd clsWnd_Mdi clsWnd_TopLevel clsMdi clsFrm clsTbl clsWnd_ChildObject clsWnd_DfCmbMiCol clsDf clsDfRowID clsDfNum clsDfStr clsCmb clsCmbNum clsCmbStr clsCol clsCmbNum_AutoSelect clsCmbStr_AutoSelect clsColRowID clsColNum clsColStr clsMl

SQLHiA Klasser (2) clsPb clsPbMdiSelect clsPbMdiFirst clsPbMdiSelect clsPbMdiPrevious clsPbMdiNext clsPbMdiLast clsPbMdiUpdate clsPbMdiSave clsPbMdiInsert clsPbMdiDelete clsPbMdiNewRow clsPbMdiSort clsPbMdiHelp clsPbMdiPrint clsPbMdiClear

SQLHiA Klasse-notasjon ClassName Class Variables Instance Variables Functions Messages

SQLHiA

SQLHiA clsSqlHandleStruct iv_hSql bhSqlStatus iv_hSql bhSqlStatus clsSqlHandleStruct Instance Variable SqlHandle True if iv_hSql is connected

SQLHiA clsSqlDbAccess sSqlDatabase sSqlUser sSqlPassword cv_hSql[1:*] nConnected nMinHandles nMaxHandles sSqlStatement sSqlStatement_Select sSqlDatabase sSqlUser sSqlPassword cv_hSql[1:*] nConnected nMinHandles nMaxHandles sSqlStatement sSqlStatement_Select nResultSetCount nFetchRowNumber nResultSetCount nFetchRowNumber InitClass ConnectSqlHandles DisconnectAllSqlHandles SetSqlStatement SetIsolationLevel SetParameter Prepare Execute ExecuteSelect FetchRow FetchRow_Through First Previous Next Last Select Update Insert Delete RetrieveRow Error MessageBoxFetchError Select_Inst Update_Inst Insert_Inst Delete_Inst InitClass ConnectSqlHandles DisconnectAllSqlHandles SetSqlStatement SetIsolationLevel SetParameter Prepare Execute ExecuteSelect FetchRow FetchRow_Through First Previous Next Last Select Update Insert Delete RetrieveRow Error MessageBoxFetchError Select_Inst Update_Inst Insert_Inst Delete_Inst clsSqlDbAccess Initierer sSqlDatabase, sSqlUser, sSqlPassword Connect nMin SqlHandles Henter en rad på nytt etter UPDATE

SQLHiA clsWnd sMdiName sTopWndName sSql sColumn sInto sTable sWhere sOrder sOrderColumn sUpdateSet sInsertInto sInsertValue sDeleteValue sUpdates[1:*] hWndColSort bExists sTableArray[1:*] nTableArrayCont sFrom sConstraints sMdiName sTopWndName sSql sColumn sInto sTable sWhere sOrder sOrderColumn sUpdateSet sInsertInto sInsertValue sDeleteValue sUpdates[1:*] hWndColSort bExists sTableArray[1:*] nTableArrayCont sFrom sConstraints sItemName sDbTableName sDbColumnName sDbTableColumnName sItemName sDbTableName sDbColumnName sDbTableColumnName SetItemName SetDbTableName Set_TbName_ColName Set_TableArray Set_From_Constraints SetItemName SetDbTableName Set_TbName_ColName Set_TableArray Set_From_Constraints SAM_Create clsWnd Set the name of an object (frmMain, dfs_Adr_PNr) dfs_Adr_PNr --> Adr dfs_Adr_PNr --> PNr Set the Array-values of different Tables in a SqlStatement Set the FROM Clause and the Constraint part of a SELECT SqlStatement Call SetItemName( )

SQLHiA clsWnd_Mdi / clsWnd_TopLevel SAM_Create clsWnd_Mdi SetTopWndName Get_SqlHandle SQL_Build SQL_Select SQL_Insert SQL_Update SQL_Delete Clear Help_TopWindow SetTopWndName Get_SqlHandle SQL_Build SQL_Select SQL_Insert SQL_Update SQL_Delete Clear Help_TopWindow SAM_Create PAM_SELECT PAM_UPDATE PAM_INSERT PAM_DELETE PAM_CLEAR PAM_HELP SAM_Close SAM_Create PAM_SELECT PAM_UPDATE PAM_INSERT PAM_DELETE PAM_CLEAR PAM_HELP SAM_Close clsWnd_TopLevel

SQLHiA clsMdi / clsFrm / clsTbl hSqlDb clsMdi hSqlSelect hSqlUpdate hSqlInsert hSqlDelete hSql nFetch hSqlSelect hSqlUpdate hSqlInsert hSqlDelete hSql nFetch Set_SqlHandle Get_SqlHandle Select_Inst Update_Inst Insert_Inst Delete_Inst Clear Set_SqlHandle Get_SqlHandle Select_Inst Update_Inst Insert_Inst Delete_Inst Clear SAM_Create PAM_FIRST PAM_PREVIOUS PAM_NEXT PAM_LAST SAM_Create PAM_FIRST PAM_PREVIOUS PAM_NEXT PAM_LAST clsFrm hSqlTbl Get_SqlHandle Select_Inst Update_Inst Insert_Inst Delete_Inst SQL_SelectSort Clear Get_SqlHandle Select_Inst Update_Inst Insert_Inst Delete_Inst SQL_SelectSort Clear SAM_Create PAM_SORT PAM_NEWROW SAM_Create PAM_SORT PAM_NEWROW clsTbl

SQLHiA clsWnd_ChildObject / clsWnd_DfCmbMiCol sParentName clsWnd_ChildObject sItemValue Sql Sql_Select Sql_Update Sql_Insert Get_Equal Get_MyValue Sql Sql_Select Sql_Update Sql_Insert Get_Equal Get_MyValue SAM_Create PAM_SQL PAM_CLEAR SAM_Create PAM_SQL PAM_CLEAR clsWnd_DfCmbMiCol

SQLHiA clsDf sParentName Get_MyValue clsDf Sql Sql_Select Sql_Update Sql_Delete Sql Sql_Select Sql_Update Sql_Delete PAM_ROWID clsDfRowID sSelect Get_Equal clsDfNum sItemValue Get_Equal clsDfStr

SQLHiA clsCmb DropDown Click Get_MyValue DropDown Click Get_MyValue SAM_DropDown SAM_Click SAM_DropDown SAM_Click clsCmb Get_Equal clsCmbNum Get_Equal clsCmbStr DropDown Click DropDown Click SAM_Click clsCmbNum_AutoSelect DropDown Click DropDown Click SAM_Click clsCmbNum_AutoSelect

SQLHiA clsCol SAM_Click clsCol Sql Sql_Select Sql_Update Sql_Delete Sql Sql_Select Sql_Update Sql_Delete clsColRowID clsColNumclsColStr

SQLHiA clsMultiline SetDbColumnName clsMultiline

SQLHiA MdiWindow / FormWindow / TableWindow clsSqlDbAccess: hSqlDb clsSqlDbAccess clsWnd_TopLevel clsMdi clsWnd_Mdi clsFrm clsTbl

SQLHiA Bruk av virtuelle funksjons-kall f1 Call SalSendMsg(Obj1, Msg1…) On Msg1 Call..f1(…)

SQLHiA Navn-setting frmSelger cmb_Selger_SNrID ComboBoxTabell-NavnKolonne-navn dfs_Selger_RowIDSkjult RowID

SQLHiA UPDATE clsFrm Update Call Execute (hSqlUpdate) Call SqlSetParameter ( hSqlSelect, DBP_FETCHTHROUGH, TRUE, ‘‘) Call FetchRow_Through ( hSqlSelect, nFetchRowNumber, nInd) Call SqlSetParameter ( hSqlSelect, DBP_FETCHTHROUGH, FALSE, ‘‘) UPDATE Selger SET Navn = :cmb_Selger_Navn, PNr = :cmb_Selger_PNr WHERE ROWID = :dfs_Selger_RowID

SQLHiA End