小编Hug*_*hem的帖子

使用in子句查询中的参数?

我想使用参数进行查询,如下所示:

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子句中有多少参数.

sql delphi firebird

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

简单的多用户数据库解决方案

我编写了一个与Sqlite非常合作的Windows桌面应用程序.它是一个单用户应用程序,数据库就位于运行应用程序的计算机上.

但是,应用程序已经增长,现在多个用户应该能够运行应用程序并连接到一个共享数据库.

我想能够在网络驱动器上共享sqlite文件,但这显然会导致数据损坏,除非有人有任何想法.

我想我可能需要安装数据库服务器,但商业MySQL许可证没有意义,PostgreSQL与我不得不重写我的应用程序.我根本没有和Firebird合作,所以我不确定这是不是一个好的解决方案.

是否有可以安装的Sqlite数据库服务器来处理Sqlite数据库文件上的传入事务?

如果我要求客户自行下载和安装MySQL,我是否必须拥有商业许可证?

任何建议或方向都会很棒,谢谢.

database sqlite firebird multi-user

8
推荐指数
3
解决办法
2万
查看次数

如何使用SQL MAX函数获取行的所有字段?

考虑这个表(来自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)

sql firebird max firebird2.1 greatest-n-per-group

6
推荐指数
2
解决办法
3104
查看次数

Delphi RTTI按属性值设置值

我有这样的课

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程序来填充我的属性值,但我有问题.我该怎么办?

delphi attributes rtti

4
推荐指数
1
解决办法
2405
查看次数

Firebird将整数转换为时间或日期

我有一个表存储一个秒的整数.我想显示它并将其用作时间或日期.

如果我写这个:

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)

sql firebird firebird2.5

3
推荐指数
1
解决办法
9442
查看次数

Firebird:使用全局变量

我想为 firebird 中的 sql 代码中使用的变量分配一个值。MySQL 代码为:

SET @x = 1;
SELECT @x;
Run Code Online (Sandbox Code Playgroud)

对应的 Firebird 代码是什么?

感谢帮助。

sql firebird

3
推荐指数
1
解决办法
2905
查看次数

Delphi TRegEx替换

如果匹配模式,我想用#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)

regex delphi

3
推荐指数
2
解决办法
5518
查看次数

在TRESTClient中添加CustomHeader

我需要在restclient中添加CustomHeader以添加apikey。

在我的代码中,我使用(FRESTClient是TRESTClient)

FRESTClient.SetHTTPHeader('X-XXX-ApiKey', 'fdfd121231212fds');
Run Code Online (Sandbox Code Playgroud)

但是当我在提琴手上看到它时,它没有设置在我的http标头中。如何做到这一点?

delphi rest delphi-10.3-rio

3
推荐指数
1
解决办法
84
查看次数

Firebird数据库不断扩大

这个标题对我来说很有趣-尽管标题几乎是无用的。我已经使用Firebird很长时间了,但是直到最近才发现一种有趣的行为。

我正在使用嵌入式firebird 1.5,并且注意到如果我在数据库中塞满blob(比如说价值10mb),数据库的大小就会增加。然后,我可以删除数据库中的所有字段,并且数据库的文件大小保持其扩展大小。目前,它的大小为20mb,完全为空。

我知道firebird已将其内置到其体系结构中(用于快速索引,速度问题等),但是我一直认为它会减少到最初的〜2mb默认值。

是否有人建议“缩小”文件大小?原因是这是一个空间意识的问题。如果我有大量的工作空间,我将不在乎。但是,事实并非如此,我需要让一切尽可能最佳

谢谢!

database firebird firebird-embedded

2
推荐指数
1
解决办法
1402
查看次数

提交由Firebird中的存储过程插入的记录

我创建了以下存储过程

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)

delphi firebird

2
推荐指数
1
解决办法
6356
查看次数