home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 8 Other / 08-Other.zip / ASCIIS.ZIP / CREAT1.SQM < prev    next >
Text File  |  1992-11-20  |  2KB  |  67 lines

  1. IMPLEMENTATION MODULE Creat1;
  2. FROM Lib IMPORT Fill,ParamCount,ParamStr;
  3.  
  4. FROM Str IMPORT Pos,Copy,Append,Length,Slice,Delete,Subst;
  5. FROM Strings IMPORT Crunch,CRLF;
  6. FROM FIO IMPORT Open,Create,RdStr,File,Close,Exists,
  7.      MkDir,ChDir,IOcheck,RdBin;
  8. FROM IO IMPORT WrStr,WrLn;
  9. FROM SQLEnv IMPORT SQLGSTRD,SQLGSTDM;
  10. FROM SQLStuff IMPORT SQLErrorHandler;
  11. IMPORT SQLPREP;
  12.  
  13. EXEC SQL WHENEVER SQLERROR GOTO error;
  14. EXEC SQL INCLUDE SQLDA;
  15.  
  16. TYPE
  17.   CharSet = SET OF CHAR;
  18.  
  19. CONST
  20.   SQLChars  = CharSet{'0'..'9','A'..'Z','a'..'z',':',',','.','_','*',
  21.                       '^','=','>','<','(',')','"',"'",'/','+','-',';'};
  22.  
  23.  
  24. VAR
  25.  J : CARDINAL;
  26.  Tmp    : ARRAY[0..2000] OF CHAR;
  27.  DBName : ARRAY[0..30] OF CHAR;  (*Name OF database - input param 1 *)
  28.   InFileName: ARRAY[0..65] OF CHAR;  (* name OF sql file - input param 2*)
  29.   F : File;
  30.   Sz : CARDINAL;
  31. PROCEDURE ProcessCmd();
  32. BEGIN
  33.  
  34.   ParamStr(DBName,1);
  35.   ParamStr(InFileName,2);
  36.   Crunch(InFileName);
  37.   Crunch(DBName);
  38.   RC := SQLGSTRD(0,Length(DBName),'S',SQLca,NIL,DBName);
  39.   IF SQLca.sqlcode <> 0
  40.     THEN HALT;
  41.     END;
  42.   Append(InFileName,'.sql');
  43.   F := Open(InFileName);
  44.   Close(F);
  45.   Sz := RdBin(F,Tmp,SIZE(Tmp));
  46.   FOR J := 0 TO Length(Tmp) DO
  47.     IF NOT (Tmp[J] IN SQLChars)
  48.       THEN Tmp[J] := ' ';
  49.       END;
  50.   END;
  51.  
  52.   WHILE Pos(Tmp,';') < MAX(CARDINAL) DO
  53.     Slice(Cmd,Tmp,0,Pos(Tmp,';'));
  54.     Delete(Tmp,0,Pos(Tmp,';') + 2);
  55.     WrLn();
  56.     WrStr('Processing SQL Statement ');
  57.     WrLn();
  58.     WrStr(Cmd);
  59.     EXEC SQL EXECUTE IMMEDIATE :Cmd;
  60.  END;
  61.  
  62. END ProcessCmd;
  63.  
  64. END Creat1.
  65. 
  66. 
  67.