我用query作了一个类似于sql企业管理器的工具,发现query对企业管理器声称的语句并不全能支持!例如下面:
CREATE TABLE [dbo].[FICALX] (
[ASSETNUMBER] [varchar] (32) NULL ,
[CALCNAME] [varchar] (32) NULL ,
[DESCRIPTION] [varchar] (62) NULL ,
[THISPERIOD] [float] NULL ,
[THISYEAR] [float] NULL ,
[PRIORYEAR] [float] NULL ,
[VALUE1] [float] NULL ,
[FILLER] [text] NULL 
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
有GO就有问题
问题:
0-大家有什么好建议!谢谢!挑战微软,哈哈哈
1-我如何设置这样的判断,来像 企业管理器 一样判断。
2-我如何从一个长字符串中一次删除某一个子字符串,例如:
 从'123451377339611552588251155'中删除全部的‘1’

解决方案 »

  1.   

    query用得是bde。有些类型声明不一样。注意点!
      

  2.   

    TO: linzhisong(無聊) .学习,不对吧,我也测试一下,怎么不可以用,举个例子好吗?
    关于replaceReplaces an image in the image list with a new image and mask.procedure Replace(Index: Integer; Image, Mask: TBitmap);DescriptionUse the Replace method to replace the image at the Index position in the image list with a new Image and overlay Mask. 0,用微软的东西做微软,怎么能超越!??????
      

  3.   

    续问题:
    3-如何做影响行数的判断。
       select 时,怎么从query1(动态的)获得query2的中的表名
      

  4.   

    query用的是BDE的接口﹐BDE并不是對所有SQL語法都支持的。
      

  5.   

    GO
    在sql分析器中代表的是这个事物可以提交了。
    所以在sql字符串中遇到go就表示可以执行了sql语句了,如果有事物则要commit了。
      

  6.   

    我是用sql server里面得replace
    SELECT REPLACE('2342142434231423423','1','')
      

  7.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      SelPos: Integer;
    begin
        SelPos := Pos('GO', Memo1.Lines.Text);
       if SelPos > 0 then
        begin
          Memo1.SelStart := SelPos - 1;
          Memo1.SelLength := Length('GO');
          { Replace selected text with ReplaceText }
          Memo1.SelText := '';
        end
        else
        MessageDlg(Concat('Could not find "', 'GO', '" in Memo1.'), mtError, [mbOk], 0);
    end;
      

  8.   

    刚修改了个replace
    //olds要替换得字符串,NewS 替换成字符串,Rstring:要替换得字符串
    Function NewString(OldS, NewS, RString: String):String;
      var
        TmpS:string; oldpos:integer;
        retS:string;
      begin
      rets:='';
      TmpS:=RString;
        repeat
          oldpos:=pos(OldS,TmpS);
          if oldpos<>0 then
          begin
             rets:=rets+copy(TmpS,1,oldpos-1)+ NewS;
             TmpS:=copy(TmpS,oldpos+length(oldS),length(TmpS)-oldpos+1);
          end;
        until (oldpos=0);
      rets:=rets+TmpS;
      result:=rets;
    end;
      

  9.   

    0-研究一下它的ISQLW
    1-判断是否是GO,是就将取出的SQL语句执行,再取下一段SQL语句
      

  10.   

    re:2-我如何从一个长字符串中一次删除某一个子字符串,例如:
     从'123451377339611552588251155'中删除全部的‘1’function DelStr(Str:string;DelStr:string):string;
    var
       DelLen:integer;
    begin
       DelLen:=DelStr.length;
       while (pos(DelStr,Str)>0) do
        begin
          delete(Str,pos(DelStr,Str),DelLen);
        end;
      result:=Str;
    end;
    我这是在网吧写的,你自己调试一下,pos的用法我也不太确定参数是否正确
      

  11.   

    re 3
    RowsAffected 属性
      

  12.   

    re:2-我如何从一个长字符串中一次删除某一个子字符串,例如:
     从'123451377339611552588251155'中删除全部的‘1’
    一句话搞定:  AnsiReplace('123451377339611552588251155','1','')
      

  13.   

    問題1.
    試一下exec('CREATE TABLE [dbo].[FICALX] (
    [ASSETNUMBER] [varchar] (32) NULL ,
    [CALCNAME] [varchar] (32) NULL ,
    [DESCRIPTION] [varchar] (62) NULL ,
    [THISPERIOD] [float] NULL ,
    [THISYEAR] [float] NULL ,
    [PRIORYEAR] [float] NULL ,
    [VALUE1] [float] NULL ,
    [FILLER] [text] NULL 
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    GO')
      

  14.   

    是AnsiReplacestr不是AnsiReplace不过我试不成功,ft~~再试试先
      

  15.   

    delphi中的函数,kekefunction StringReplace(const S, OldPattern, NewPattern: string;
      Flags: TReplaceFlags): string;
    var
      SearchStr, Patt, NewStr: string;
      Offset: Integer;
    begin
      if rfIgnoreCase in Flags then
      begin
        SearchStr := AnsiUpperCase(S);
        Patt := AnsiUpperCase(OldPattern);
      end else
      begin
        SearchStr := S;
        Patt := OldPattern;
      end;
      NewStr := S;
      Result := '';
      while SearchStr <> '' do
      begin
        Offset := AnsiPos(Patt, SearchStr);
        if Offset = 0 then
        begin
          Result := Result + NewStr;
          Break;
        end;
        Result := Result + Copy(NewStr, 1, Offset - 1) + NewPattern;
        NewStr := Copy(NewStr, Offset + Length(OldPattern), MaxInt);
        if not (rfReplaceAll in Flags) then
        begin
          Result := Result + NewStr;
          Break;
        end;
        SearchStr := Copy(SearchStr, Offset + Length(Patt), MaxInt);
      end;
    end;
      

  16.   

    厉害 ,先收藏
    搬个 凳子坐着学习ing^^^^^^^^^
      

  17.   

    厉害 ,先收藏
    搬个 凳子坐着学习ing^^^^^^^^^