小编Jon*_* K.的帖子

在MySQL SELECT中使用REPLACE()

我提前道歉,问我肯定会证明这是一个非常简单的问题.

我有一个MySQL(5.5)数据库,其中包括一个电话号码字段.我正在尝试创建一个将搜索该字段的语句,删除任何空格.因此,搜索'0208'将返回'020 8','02 08','0 208','0208'等.

这是在Delphi XE2中,如果有所作为.

'SELECT * FROM sales_ledger WHERE REPLACE(telephone, " ", "") LIKE "%' + SearchEdit.Text + '%"'
Run Code Online (Sandbox Code Playgroud)

......给我一个错误......

WHERE子句中的过滤器无效

...和...

'SELECT REPLACE(telephone, " ", "") FROM sales_ledger WHERE REPLACE(telephone, " ", "") LIKE "%' + SearchEdit.Text + '%"'
Run Code Online (Sandbox Code Playgroud)

...给我...

字段名称无效.一般SQL错误.未找到列.

......而且我确实需要所有返回的领域.

我可以请求一些帮助来纠正语法.如果您需要更多信息,请不要犹豫.非常感谢你花时间陪伴.

编辑:我错过了一条可能很重要的信息.该表实际上是一个我通过ODBC访问的Sage数据库.因为我尝试的任何工作都可能是根本问题.抱歉不早点说.

mysql

11
推荐指数
2
解决办法
4万
查看次数

使用Ctrl + Enter清空TMemo

我想要完成的事情:

  • 用户将文本输入TMemo框
  • 如果他们按Enter键,则会创建一个新行
  • 如果他们按Ctrl+ Enter,则将文本移动到另一个框并清空TMemo

我正在使用此代码[KeyPreview为True]:

procedure TFMsg.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if (Shift = [ssCtrl]) and (Key = $0D) then
  begin
    Key := 0;
    btnSendClick(Sender); //this moves the text and empties the TMemo box
  end;
end;
Run Code Online (Sandbox Code Playgroud)

实际发生了什么:

  • Ctrl+ Enter将文本发送到另一个框
  • TMemo清空但似乎接受了Enter键,因为光标在第二行闪烁

任何帮助感激不尽.谢谢!

delphi delphi-xe2

6
推荐指数
1
解决办法
1284
查看次数

标签 统计

delphi ×1

delphi-xe2 ×1

mysql ×1