标签: interbase

数据库设计:替代复合键?

我正在构建一个数据库系统,并且我的一个表的设计有问题.

在该系统中,有一个用户表,一个对象表,一个项表和一个成本表.

成本表中的唯一记录由用户,对象,项目和年份确定.但是,如果项目不同,则可能有多个记录具有相同的年份.

层次结构为user-> object-> item-> year,每个项目有多个唯一年份,每个对象有多个唯一项目,每个用户有多个唯一对象,多个唯一用户.

设计成本表的最佳方法是什么?

我想将userid,objectid和itemid包含为外键,然后使用由userid,objecid,itemid和costyear组成的复合键.我听说复合键是糟糕的设计,但我不确定如何构建它以摆脱使用复合键.你可以告诉我的数据库建设技巧有点生疏.

谢谢!

PS如果重要,这是一个interbase数据库.

sql interbase database-design data-modeling

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

选择AS不在interbase中工作

作品

select payeeid, EXTRACT(WEEKDAY FROM checkdate) as DOW, 
(bankcleared - checkdate) as DateDiff  
from Master  
where (bankcleared is not null)  
order by payeeid, DOW, DateDiff  
Run Code Online (Sandbox Code Playgroud)

添加DateDiffWhere- 不起作用

select payeeid, EXTRACT(WEEKDAY FROM checkdate) as DOW, 
(bankcleared - checkdate) as DateDiff  
from Master  
where (bankcleared is not null)  AND (DateDiff >= 1)  
order by payeeid, DOW, DateDiff  
Run Code Online (Sandbox Code Playgroud)

sql delphi interbase

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

Visual Studio Borland DLL错误

如果我在Visual Studio 2012中运行该应用程序,它就像一个魅力,但当我尝试在bin文件夹中运行.exe文件时,我收到此错误:

System.IO.FileLoadException: Could not load file or assembly       'Borland.Data.DbxCommonDriver, Version=16.0.0.0, Culture=neutral, PublicKeyToken=a91a7c5705831a4f' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'Borland.Data.DbxCommonDriver, Version=16.0.0.0, Culture=neutral, PublicKeyToken=a91a7c5705831a4f'
at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName …
Run Code Online (Sandbox Code Playgroud)

database interbase visual-studio-2012

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

通配符作为存储过程的参数

假设,我有一个存储过程,它接受一个参数 - id,并返回一些与此 id 相对应的数据。如果我想检索所有这些数据,比如在 SELECT 查询中使用通配符怎么办?这该怎么做?

sql interbase stored-procedures select-query

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

使用SQL获得独特的计数?

SQL专家为您提供简单的SQL.

我有两个字段(AccountNo,CheckNo).可以有多个具有相同值的checkno.它将拥有相同的AccountNo.我希望mytable显示AccountNo和CheckNo的列表,以及它存在多少次的计数.

Select Distinct AccountNo, CheckNo, Count(Distinct AccountNo, CheckNo) as Total
from MyTable
Run Code Online (Sandbox Code Playgroud)

sql delphi interbase

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

SELECT DISTINCT INTO语法错误interbase sql

我正在尝试使用以下语法制作只包含不同值的表的副本:

SELECT DISTINCT *
INTO :TAB_DISTINCT
FROM TAB_MAIN
Run Code Online (Sandbox Code Playgroud)

但是IB并不喜欢INTO系列(用该系列评论建立一个好的计划)无效的令牌.动态SQL错误.SQL错误代码= -104.令牌未知 - 第2行,char -1.INTO.

我已尝试使用和不使用冒号,也有没有空的预先存在的TAB_DISTINCT并设置了字段.但没有雪茄.

任何人都有任何线索我在这里做的笨蛋语法错误?非常感谢,Brian

sql firebird interbase

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

偏移951处的请求BLR无效

我有由Firebird 1.0创建的gdb文件(25GB另一个~38 GB).在打开一些表时,它们显示错误[运行Firebird服务器1.0(停止Interbase 7.5)] - >无效请求BLR在偏移951处是什么意思?

另外我想将它转换为Interbase 7.5它有ODS版本.10(通过gstat -h).

有任何想法吗 ??

firebird interbase database-migration

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

安装Interbase和Firebird

如果Interbase和Firebird都安装在同一工作站上,是否存在任何冲突?有没有人有任何提示或最佳做法?

firebird interbase

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

如果我只有BDE别名,如何获得Interbase密码?

我试图通过BDE在运行时连接到Interbase DB.我试图在一个无形的项目(但不是一个控制台应用程序)中这样做.别名是已知的.我从注册表中检索别名.示例:MyAlias.

//create alias params list  
AParams:= TStringList.Create;  

//create a session to get alias parameters  
ASession:= TSession.Create(nil);  
ASession.SessionName := 'MainSession';  
try  
 ASession.GetAliasParams(tmpAlias, AParams);  
finally  
 ASession.Free;  
end;  


//connect to database 
dbMain:= TDatabase.Create(nil);  
with dbMain do  
begin  
 //AliasName:= 'MyAlias';  
 DatabaseName:= 'test';  
 LoginPrompt:= False;  
 Params.Assign(AParams);  
 try  
  Connected:=True;  
  if Connected then ShowMessage('Connected!') else ShowMessage('Failed to Connect!');    
 finally  
  Free;  
 end; //try  
end;//with  

//free alias params list  
AParams.Free;
Run Code Online (Sandbox Code Playgroud)

无论如何,它看起来不像Session.GetParams实际获得密码.我如何获得密码?如果我知道别名,有没有办法从BDE获取所有连接信息并建立连接?如果客户端将来更改用户名和密码,我宁愿不对其进行硬编码.

delphi interbase bde delphi-7

0
推荐指数
1
解决办法
830
查看次数

帮助SQL总计和总和

我有这个SQL.我不确定它是我需要的,但它确实选择了我需要的所有记录.我现在只需要压缩它们并计算唯一日期的计数和金额.

select m.account_tag, m.cmcl_forecast_cleared, m.check_amount,  
a.acct_id, a.acct_no, a.bank_id,  
b.bank_id, b.name  
from ap_master m   
join accounts a on a.acct_id=m.account_tag  
join banks b on b.bank_id=a.bank_id  
where m.cmcl_bank_cleared is null 
order by m.account_tag, m.cmcl_forecast_cleared  
Run Code Online (Sandbox Code Playgroud)

我只想显示四列Account,Date,Count和sum

该帐户将是a.acct_no.
日期将是该帐户
的所有唯一m.cmcl_forecast_cleared日期计数将是这些唯一日期的检查(记录)
的总数(cmcl_forecast_cleared)总和将是该唯一日期的总check_amount(cmcl_forecast_cleared)

我希望这是可以理解的.我不确定我是否需要任何分组

sql delphi interbase

0
推荐指数
1
解决办法
229
查看次数

如何在delphi/interbase中使用string作为blob进行插入查询

我想做一个查询插入:

插入A_TABLE(BLOB_FIELD)值(MY_BLOB_VAL)

但我在exphi中只有字符串值,例如:

procedure INSERT_BLOB_QUERY
  var
    query:String;
    my_blob_val:String;
begin
   my_blob_val := 'a blob string to be inserted';
   query := 'INSERT INTO A_TABLE (BLOB_FIELD) VALUES(' + my_blob_val + ')';
   // to execute a query....
end;
Run Code Online (Sandbox Code Playgroud)

出现的问题是字符串到blob的转换.

那么如何在interbase blob字段中插入一个字符串?

delphi string interbase blob

0
推荐指数
1
解决办法
6265
查看次数

Interbase SQL语句不起作用

我正在尝试为Interbase编写一个SQL语句.

这个SQL怎么了?

md_master(trm)=主表cd_Med(cdt)=详细信息表

SELECT trm.seq_no, trm.recipient_id, trm.payee_fullname, trm.payee_address1, trm.payee_address2, trm.payee_address3, trm.payee_address_city, trm.payee_address_state, trm.recip_zip, trm.recip_zip_4, trm.recip_zip_4_2, trm.check_no, trm.check_date, trm.check_amount,
cdt.com_ss_source_sys, cdt.cd_pay_date, cdt.com_set_amount,
bnk.name, bnk.address, bnk.transit_routing,
act.acct_no
FROM md_master trm, cd_med cdt, accounts act, banks bnk
join cd_med on cdt.master_id = trm.id
join accounts on act.acct_id = trm.account_tag
join banks on bnk.bank_id = act.bank_id
ORDER BY cdt.master_id
Run Code Online (Sandbox Code Playgroud)

我没有收到错误,计算机只是不停地嘎吱嘎吱地挂起来.

sql delphi interbase delphi-7

0
推荐指数
1
解决办法
342
查看次数