1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
|
-------------------------------------------------------------------------------
-- --
-- Filename : $Source: /cvsroot/gnade/gnade/samples/esql/insert.gpq,v $
-- Description : Demonstration lfor dynamic SQL --
-- Author : Michael Erdmann <Michael.Erdmann@snafu.de> --
-- Created On : 22-Dec-2000 --
-- Last Modified By: $Author: merdmann $
-- Last Modified On: $Date: 2003/05/10 16:06:55 $ --
-- Status : $State: Exp $ --
-- --
-- Copyright (C) 2000-2003 Michael Erdmann --
-- --
-- GNADE is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
-- ware Foundation; either version 2, or (at your option) any later ver- --
-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
-- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
-- for more details. You should have received a copy of the GNU General --
-- Public License distributed with GNAT; see file COPYING. If not, write --
-- to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, --
-- MA 02111-1307, USA. --
-- --
-- As a special exception, if other files instantiate generics from this --
-- unit, or you link this unit with other files to produce an executable, --
-- this unit does not by itself cause the resulting executable to be --
-- covered by the GNU General Public License. This exception does not --
-- however invalidate any other reasons why the executable file might be --
-- covered by the GNU Public License. --
-- --
-- GNADE is implemented to work with GNAT, the GNU Ada compiler. --
-- --
-- Functional Description --
-- ====================== --
-- --
-- --
-- Restrictions --
-- ============ --
-- No Tasking support --
-- --
-- References --
-- ========== --
-- //1// - (Second Informal Review Draft) ISO/IEC 9075:1992, Database --
-- Language SQL- July 30, 1992 --
-- --
-------------------------------------------------------------------------------
with Ada.Text_IO; use Ada.Text_IO;
with SQL_STANDARD; use SQL_STANDARD;
with Ada.Strings.Fixed; use Ada.Strings.Fixed;
with Ada.Strings; use Ada.Strings;
with GNU.DB.SQLCLI; use GNU.DB.SQLCLI;
procedure Insert is
General_Error : exception;
EXEC SQL WHENEVER SQLERROR RAISE General_Error;
EXEC SQL DECLARE DB01 DATABASE ;
S : constant String :=
"INSERT INTO DEPARTMENTS (DEPTNO,NAME) VALUES (?,?) ";
EXEC SQL BEGIN DECLARE SECTION END-EXEC
Name : CHAR(1..40);
Name_ind : indicator_type := 0;
Deptno : INT;
Deptno_Ind : INDICATOR_TYPE := 0;
EXEC SQL END DECLARE SECTION END-EXEC
EXEC SQL DECLARE test_sql STATEMENT ;
begin
EXEC SQL CONNECT $DBUSER
IDENTIFIED BY $DBPASSWD
BY DB01
TO $DBSOURCE ;
Move("Test", Name );
Name_Ind := 4;
Deptno := INT(4711);
EXEC SQL AT DB01
PREPARE test_sql
FROM S
USING :deptno, :Name INDICATOR :Name_Ind ;
EXEC SQL AT DB01
EXECUTE test_sql
USING :Deptno, :Name INDICATOR :Name_Ind;
EXEC SQL at DB01 CLOSE test_sql;
end Insert;
|