FB 2.14 - Delphi 2007 - IBDAC TIBCScript 
 

 Although I'm certain this is not a Delphi problem, I've included a copy of the 
commands used to create the SQL. Those commands work in FlameRobin, and in 
IBExpert. I used both to create working DDL, which I copied into my delphi 
program. Any help or suggestions will be greatly appreciated. I've been beating 
my head against this for hours. Ugh.
 

 When I execute the script below, Everything appears to work fine until it 
reaches the line that says:
           Script1.SQL.Add('  S = Replace(S, ''BB'', ''B''); '); 
 

 However : Script1.SQL.Add('  S = Replace(S, ''A'', ''''); '); seems to work. 
Odd.
 

 So the "BB" line is where I get the following error message. I don't 
understand why since the single letter replacement seems to work. I tried other 
letter combinations such as 'YY' or 'SSS', but nothing seems to work once there 
are more than one character.
 

 Error Message:
 Project ABS3.exe raised exception class EIBCError with message '

 Dynamic SQL Error
 SQL error code = -104
 Token unknown - line 57, column 19
 SSS'.
 

 

 

 

 Code Sample:
 

   Script1:= TIBCScript.Create(nil);
   Script1.Delimiter := '||'
   begin
     Script1.SQL.Clear;
 

     Script1.SQL.Add('CREATE OR ALTER PROCEDURE STANDARDIZENAMEADDRESS (');
     Script1.SQL.Add('S D_SEARCHFIELD) ');
     Script1.SQL.Add('RETURNS ( ');
     Script1.SQL.Add('    RESULT D_SEARCHFIELD) ');
     Script1.SQL.Add('AS ');
     Script1.SQL.Add('begin ');
     Script1.SQL.Add('  S = Upper(S);');
     Script1.SQL.Add(' ');
     Script1.SQL.Add('-- Remove Spaces. Do three times. ');
     Script1.SQL.Add('  S = Replace(S, '' '', ''''); ');
     Script1.SQL.Add('  S = Replace(S, '' '', ''''); ');
     Script1.SQL.Add('  S = Replace(S, '' '', ''''); ');
     Script1.SQL.Add(' ');
     Script1.SQL.Add('-- Remove apostrophy ');
     Script1.SQL.Add('  S = Replace(S, ''#39'', ''''); ');
     Script1.SQL.Add(' ');
     Script1.SQL.Add('-- Remove Vowels ');
     Script1.SQL.Add('  S = Replace(S, ''A'', ''''); ');
     Script1.SQL.Add('  S = Replace(S, ''E'', ''''); ');
     Script1.SQL.Add('  S = Replace(S, ''I'', ''''); ');
     Script1.SQL.Add('  S = Replace(S, ''O'', ''''); ');
     Script1.SQL.Add('  S = Replace(S, ''U'', ''''); ');
     Script1.SQL.Add('  S = Replace(S, ''Y'', ''''); ');
     Script1.SQL.Add(' ');
     Script1.SQL.Add('-- Remove non-alphanumeric ');
     Script1.SQL.Add('  S = Replace(S, Chr(96), ''''); ');
     Script1.SQL.Add('  S = Replace(S, ''~'', ''''); ');
     Script1.SQL.Add('  S = Replace(S, ''!'', ''''); ');
     Script1.SQL.Add('  S = Replace(S, ''@'', ''''); ');
     Script1.SQL.Add('  S = Replace(S, ''#'', ''''); ');
     Script1.SQL.Add('  S = Replace(S, ''$'', ''''); ');
     Script1.SQL.Add('  S = Replace(S, ''%'', ''''); ');
     Script1.SQL.Add('  S = Replace(S, ''^'', ''''); ');
     Script1.SQL.Add('  S = Replace(S, ''&'', ''''); ');
     Script1.SQL.Add('  S = Replace(S, ''*'', ''''); ');
     Script1.SQL.Add('  S = Replace(S, ''('', ''''); ');
     Script1.SQL.Add('  S = Replace(S, '')'', ''''); ');
     Script1.SQL.Add('  S = Replace(S, ''_'', ''''); ');
     Script1.SQL.Add('  S = Replace(S, ''-'', ''''); ');
     Script1.SQL.Add('  S = Replace(S, ''{'', ''''); ');
     Script1.SQL.Add('  S = Replace(S, ''}'', ''''); ');
     Script1.SQL.Add('  S = Replace(S, ''['', ''''); ');
     Script1.SQL.Add('  S = Replace(S, '']'', ''''); ');
     Script1.SQL.Add('  S = Replace(S, ''|'', ''''); ');
     Script1.SQL.Add('  S = Replace(S, ''\'', ''''); ');
     Script1.SQL.Add('  S = Replace(S, '':'', ''''); ');
     Script1.SQL.Add('  S = Replace(S, '';'', ''''); ');
     Script1.SQL.Add('  S = Replace(S, '''''', ''''); ');
     Script1.SQL.Add('  S = Replace(S, Chr(60), ''''); ');
     Script1.SQL.Add('  S = Replace(S, Chr(62), ''''); ');
     Script1.SQL.Add('  S = Replace(S, Chr(63), ''''); ');
     Script1.SQL.Add('  S = Replace(S, ''/'', ''''); ');
     Script1.SQL.Add('  S = Replace(S, '','', ''''); ');
     Script1.SQL.Add('  S = Replace(S, Chr(46), ''''); ');
     Script1.SQL.Add(' ');
     Script1.SQL.Add('-- Remove Double Letters ');
     Script1.SQL.Add('  S = Replace(S, ''BB'', ''B''); ');

 // Error occurs in the above line. =====================================
     Script1.SQL.Add('  S = Replace(S, ''CC'', ''C''); ');
     Script1.SQL.Add('  S = Replace(S, ''DD'', ''D''); ');
     Script1.SQL.Add('  S = Replace(S, ''FF'', ''F''); ');
     Script1.SQL.Add('  S = Replace(S, ''GG'', ''G''); ');
     Script1.SQL.Add('  S = Replace(S, ''HH'', ''H''); ');
     Script1.SQL.Add('  S = Replace(S, ''JJ'', ''J''); ');
     Script1.SQL.Add('  S = Replace(S, ''KK'', ''K''); ');
     Script1.SQL.Add('  S = Replace(S, ''LL'', ''L''); ');
     Script1.SQL.Add('  S = Replace(S, ''MM'', ''M''); ');
     Script1.SQL.Add('  S = Replace(S, ''NN'', ''N''); ');
     Script1.SQL.Add('  S = Replace(S, ''PP'', ''P''); ');
     Script1.SQL.Add('  S = Replace(S, ''QQ'', ''Q''); ');
     Script1.SQL.Add('  S = Replace(S, ''RR'', ''R''); ');
     Script1.SQL.Add('  S = Replace(S, ''SS'', ''S''); ');
     Script1.SQL.Add('  S = Replace(S, ''TT'', ''T''); ');
     Script1.SQL.Add('  S = Replace(S, ''VV'', ''V''); ');
     Script1.SQL.Add('  S = Replace(S, ''WW'', ''W''); ');
     Script1.SQL.Add('  S = Replace(S, ''XX'', ''X''); ');
     Script1.SQL.Add('  S = Replace(S, ''YY'', ''Y''); ');
     Script1.SQL.Add('  S = Replace(S, ''ZZ'', ''Z''); ');
     Script1.SQL.Add(' ');
     Script1.SQL.Add('-- Remove Double Letters again (second time) ');
     Script1.SQL.Add('  S = Replace(S, ''BB'', ''B''); ');
     Script1.SQL.Add('  S = Replace(S, ''CC'', ''C''); ');
     Script1.SQL.Add('  S = Replace(S, ''DD'', ''D''); ');
     Script1.SQL.Add('  S = Replace(S, ''FF'', ''F''); ');
     Script1.SQL.Add('  S = Replace(S, ''GG'', ''G''); ');
     Script1.SQL.Add('  S = Replace(S, ''HH'', ''H''); ');
     Script1.SQL.Add('  S = Replace(S, ''JJ'', ''J''); ');
     Script1.SQL.Add('  S = Replace(S, ''KK'', ''K''); ');
     Script1.SQL.Add('  S = Replace(S, ''LL'', ''L''); ');
     Script1.SQL.Add('  S = Replace(S, ''MM'', ''M''); ');
     Script1.SQL.Add('  S = Replace(S, ''NN'', ''N''); ');
     Script1.SQL.Add('  S = Replace(S, ''PP'', ''P''); ');
     Script1.SQL.Add('  S = Replace(S, ''QQ'', ''Q''); ');
     Script1.SQL.Add('  S = Replace(S, ''RR'', ''R''); ');
     Script1.SQL.Add('  S = Replace(S, ''SS'', ''S''); ');
     Script1.SQL.Add('  S = Replace(S, ''TT'', ''T''); ');
     Script1.SQL.Add('  S = Replace(S, ''VV'', ''V''); ');
     Script1.SQL.Add('  S = Replace(S, ''WW'', ''W''); ');
     Script1.SQL.Add('  S = Replace(S, ''XX'', ''X''); ');
     Script1.SQL.Add('  S = Replace(S, ''YY'', ''Y''); ');
     Script1.SQL.Add('  S = Replace(S, ''ZZ'', ''Z''); ');
     Script1.SQL.Add(' ');
     Script1.SQL.Add('-- Remove Tripple Letters just to be sure.');
     Script1.SQL.Add('  S = Replace(S, ''BBB'', ''B''); ');
     Script1.SQL.Add('  S = Replace(S, ''CCC'', ''C''); ');
     Script1.SQL.Add('  S = Replace(S, ''DDD'', ''D''); ');
     Script1.SQL.Add('  S = Replace(S, ''FFF'', ''F''); ');
     Script1.SQL.Add('  S = Replace(S, ''GGG'', ''G''); ');
     Script1.SQL.Add('  S = Replace(S, ''HHH'', ''H''); ');
     Script1.SQL.Add('  S = Replace(S, ''JJJ'', ''J''); ');
     Script1.SQL.Add('  S = Replace(S, ''KKK'', ''K''); ');
     Script1.SQL.Add('  S = Replace(S, ''LLL'', ''L''); ');
     Script1.SQL.Add('  S = Replace(S, ''MMM'', ''M''); ');
     Script1.SQL.Add('  S = Replace(S, ''NNN'', ''N''); ');
     Script1.SQL.Add('  S = Replace(S, ''PPP'', ''P''); ');
     Script1.SQL.Add('  S = Replace(S, ''QQQ'', ''Q''); ');
     Script1.SQL.Add('  S = Replace(S, ''RRR'', ''R''); ');
     Script1.SQL.Add('  S = Replace(S, ''SSS'', ''S''); ');
     Script1.SQL.Add('  S = Replace(S, ''TTT'', ''T''); ');
     Script1.SQL.Add('  S = Replace(S, ''VVV'', ''V''); ');
     Script1.SQL.Add('  S = Replace(S, ''WWW'', ''W''); ');
     Script1.SQL.Add('  S = Replace(S, ''XXX'', ''X''); ');
     Script1.SQL.Add('  S = Replace(S, ''YYY'', ''Y''); ');
     Script1.SQL.Add('  S = Replace(S, ''ZZZ'', ''Z''); ');
     Script1.SQL.Add(' ');
     Script1.SQL.Add('  Result = S;');
 

     Script1.SQL.Add('  suspend;');
     Script1.SQL.Add('end ||');
     try
       Script1.Execute ;
       Script1.SQL.Clear;
     except
       exit;
     end;
 
 

 ... more Grants etc.follow
  • [firebir... ho...@agencybusys.com [firebird-support]
    • [fi... ho...@agencybusys.com [firebird-support]
      • ... Dimitry Sibiryakov s...@ibphoenix.com [firebird-support]
        • ... diego schumacher diego_schumac...@yahoo.com.ar [firebird-support]

Reply via email to