我想使用参数进行查询,如下所示:
SELECT * FROM MATABLE
WHERE MT_ID IN (368134, 181956)
Run Code Online (Sandbox Code Playgroud)
所以我想到这个
SELECT * FROM MATABLE
WHERE MT_ID IN (:MYPARAM)
Run Code Online (Sandbox Code Playgroud)
但它不起作用......
有没有办法做到这一点 ?
我实际上使用的是IBX和Firebird 2.1
我不知道IN子句中有多少参数.
我编写了一个与Sqlite非常合作的Windows桌面应用程序.它是一个单用户应用程序,数据库就位于运行应用程序的计算机上.
但是,应用程序已经增长,现在多个用户应该能够运行应用程序并连接到一个共享数据库.
我想能够在网络驱动器上共享sqlite文件,但这显然会导致数据损坏,除非有人有任何想法.
我想我可能需要安装数据库服务器,但商业MySQL许可证没有意义,PostgreSQL与我不得不重写我的应用程序.我根本没有和Firebird合作,所以我不确定这是不是一个好的解决方案.
是否有可以安装的Sqlite数据库服务器来处理Sqlite数据库文件上的传入事务?
如果我要求客户自行下载和安装MySQL,我是否必须拥有商业许可证?
任何建议或方向都会很棒,谢谢.
考虑这个表(来自http://www.tizag.com/mysqlTutorial/mysqlmax.php):
Id name type price
123451 Park's Great Hits Music 19.99
123452 Silly Puddy Toy 3.99
123453 Playstation Toy 89.95
123454 Men's T-Shirt Clothing 32.50
123455 Blouse Clothing 34.97
123456 Electronica 2002 Music 3.99
123457 Country Tunes Music 21.55
123458 Watermelon Food 8.73
Run Code Online (Sandbox Code Playgroud)
此SQL查询返回每种类型中最昂贵的项:SELECT类型,MAX(价格)FROM产品GROUP BY类型
Clothing $34.97
Food $8.73
Music $21.55
Toy $89.95
Run Code Online (Sandbox Code Playgroud)
我还希望为每一行获取属于上述最高价格的字段ID和名称.什么SQL查询将返回这样的表?
Id name type price
123455 Blouse Clothing 34.97
123458 Watermelon Food 8.73
123457 Country Tunes Music 21.55
123453 Playstation Toy …Run Code Online (Sandbox Code Playgroud) 我有这样的课
TuserClass = class
private
FUtilisateurCode: string;
FUtilisateurCle: string;
public
procedure SetCodeInt(ACode: string; AValue: string);
published
[CodeInt('2800')]
property UtilisateurCode: String read FUtilisateurCode write FUtilisateurCode;
[CodeInt('2801')]
property UtilisateurCle: String read FUtilisateurCle write FUtilisateurCle;
end;
procedure TuserClass.SetCodeInt(ACode: string; AValue: string);
begin
// what I want to is making this by RTTI to set good value to good CodeInt
if ACode = '2800' then FutilisateurCode := AValue
else if ACode = '2801' then FUtilisateurCle := AValue;
end;
Run Code Online (Sandbox Code Playgroud)
我想使用我的SetCodeInt程序来填充我的属性值,但我有问题.我该怎么办?
我有一个表存储一个秒的整数.我想显示它并将其用作时间或日期.
如果我写这个:
Select Cast(ColAmountofSeconds as Time) as ThisTime From MyTable;
Run Code Online (Sandbox Code Playgroud)
同样的:
Select Cast(ColAmountofSeconds as Date) as ThisTime From MyTable;
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
数据类型转换期间发生溢出.字符串"14"的转换错误.
注意"14"是ColAmountofSeconds列中第一行的值.
这在SQL Server中是如此自然,我无法相信我花费了大量时间来搞清楚这一点.
编辑
我简直不敢相信这是答案:
Update MyTable
Set TIMESPENT = time '00:00:00' + ColAmountOfSeconds;
Run Code Online (Sandbox Code Playgroud) 我想为 firebird 中的 sql 代码中使用的变量分配一个值。MySQL 代码为:
SET @x = 1;
SELECT @x;
Run Code Online (Sandbox Code Playgroud)
对应的 Firebird 代码是什么?
感谢帮助。
如果匹配模式,我想用#13#10替换大字符串中所有字符@的字符.
但是如何得到我的模式'[0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9]'的值在我的替代领域?
pattern := '@' + '[0-9][0-9][0-9][0-9][0-9][0-9][0-9]' + '\$';
replacement := #13#10 + '[0-9][0-9][0-9][0-9][0-9][0-9][0-9]' + '\$';
ts.Text := TRegEx.Replace(AString, pattern, replacement, [roIgnoreCase]);
Run Code Online (Sandbox Code Playgroud) 我需要在restclient中添加CustomHeader以添加apikey。
在我的代码中,我使用(FRESTClient是TRESTClient)
FRESTClient.SetHTTPHeader('X-XXX-ApiKey', 'fdfd121231212fds');
Run Code Online (Sandbox Code Playgroud)
但是当我在提琴手上看到它时,它没有设置在我的http标头中。如何做到这一点?
这个标题对我来说很有趣-尽管标题几乎是无用的。我已经使用Firebird很长时间了,但是直到最近才发现一种有趣的行为。
我正在使用嵌入式firebird 1.5,并且注意到如果我在数据库中塞满blob(比如说价值10mb),数据库的大小就会增加。然后,我可以删除数据库中的所有字段,并且数据库的文件大小保持其扩展大小。目前,它的大小为20mb,完全为空。
我知道firebird已将其内置到其体系结构中(用于快速索引,速度问题等),但是我一直认为它会减少到最初的〜2mb默认值。
是否有人建议“缩小”文件大小?原因是这是一个空间意识的问题。如果我有大量的工作空间,我将不在乎。但是,事实并非如此,我需要让一切尽可能最佳
谢谢!
我创建了以下存储过程
SET TERM ^ ;
CREATE OR ALTER PROCEDURE EDIT_FATURA (fat_id integer, mflag integer) as
begin
update inv_lines set mflag = :mflag where fat_id = :fat_id;
delete from inv_lines_temp where 1=1 ;
insert into inv_lines_temp select ID,CODE_ID,ADET,UNIT_PRICE,LINE_NET,LINE_VAT,KDV,LINE_GRAND,CRN
from inv_lines where fat_id = :fat_id;
end^
SET TERM ; ^
GRANT SELECT,UPDATE ON INV_LINES TO PROCEDURE EDIT_FATURA;
GRANT SELECT,INSERT,DELETE ON INV_LINES_TEMP TO PROCEDURE EDIT_FATURA;
GRANT EXECUTE ON PROCEDURE EDIT_FATURA TO SYSDBA;
Run Code Online (Sandbox Code Playgroud)
并使用以下代码,我使用我的Delphi应用程序调用存储过程
dm.q_genel.Close;
dm.q_genel.SQL.Clear;
dm.q_genel.SQL.Add('EXECUTE PROCEDURE EDIT_FATURA(:p1,:p2)');
dm.q_genel.ParamByName('p1').AsInteger := fid;
dm.q_genel.ParamByName('p1').AsInteger := …Run Code Online (Sandbox Code Playgroud) firebird ×7
delphi ×5
sql ×4
database ×2
attributes ×1
firebird2.1 ×1
firebird2.5 ×1
max ×1
multi-user ×1
regex ×1
rest ×1
rtti ×1
sqlite ×1