📄 stockdatamodel.pas
字号:
unit StockDataModel;
interface
uses
SysUtils, Classes, Forms, DB, ADODB, Windows, RpBase, RpSystem, RpRave,
RpDefine, RpCon, RpConDS;
type
TStockDM = class(TDataModule)
ADOConn: TADOConnection;
QUser: TADOQuery;
QCustomer: TADOQuery;
QOut: TADOQuery;
DSBarCodefind: TDataSource;
QBarCodefind: TADOQuery;
ADOConnBarCodeTemp: TADOConnection;
QBarCode: TADOQuery;
DSBarCode: TDataSource;
QOrders: TADOQuery;
DSOrders: TDataSource;
QGBarCode: TADOQuery;
DSGBarCode: TDataSource;
QSQLBarCode: TADOQuery;
DSSQLBarCode: TDataSource;
QBarCodeQuery: TADOQuery;
DSBarCodeQuery: TDataSource;
QDevAndOptions: TADOQuery;
QDevHardOptions: TADOQuery;
QDeviceType: TADOQuery;
QDeviceTypeDevName: TWideStringField;
QDeviceTypeDevNum: TWideStringField;
QDeviceTypeProNumber: TIntegerField;
QDeviceTypeDevImage: TBlobField;
QDeviceTypeImageFile: TWideStringField;
QDeviceTypeDescri: TWideStringField;
QDeviceTypeUpDateDate: TDateTimeField;
ADOQuery1: TADOQuery;
procedure DataModuleCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
StockDM: TStockDM;
QBarCodefindSQLStr:string;
implementation
uses PublicParameter, ProSeriseMan;
{$R *.dfm}
procedure TStockDM.DataModuleCreate(Sender: TObject);
var
username: string; //用户名
userpass: string; //用户密码
datapass: string; //数据库密码
dataserver: string; //数据库所在路径
s_con: string; //数据连接串
begin
QBarCodefindSQLStr:=
'select a.*,c.DevName '+
'from BarCode a,DeviceType c '+
'where a.Devnum=c.Devnum ';
{ACCESS2000缺省打开时是以独占方式打开,当access在用时,其它程序自然就不能使用了。只要你想在access直接修改、删除记录,那必定是以独占方式打开的,这是access的先天缺陷.
adoconnection.mode=readonly; //这样才能让多个程序同时连接到access
修改的时候:
将TAdoTable 或TAdoQuery改为CacheUpdates设置为true,再用事务提交的办法。
Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;
Data Source=D:\出库入库管理\BarCodeTemp.mdb;
Mode=ReadWrite;Extended Properties="";
Jet OLEDB:System database="";
Jet OLEDB:Registry Path="";
Jet OLEDB:Database Password="";
Jet OLEDB:Engine Type=5;
Jet OLEDB:Database Locking Mode=1;
Jet OLEDB:Global Partial Bulk Ops=2;
Jet OLEDB:Global Bulk Transactions=1;
Jet OLEDB:New Database Password="";
Jet OLEDB:Create System Database=False;
Jet OLEDB:Encrypt Database=False;
Jet OLEDB:Don't Copy Locale on Compact=False;
Jet OLEDB:Compact Without Replica Repair=False;
Jet OLEDB:SFP=False}
CurPath := ExtractFileDir(Application.ExeName); //获取当前目录
dataserver := CurPath + '\BarCodeTemp.mdb'; //'\GBInvioceDBTrain.mdb';
//datapass := '999999';
username := '';
userpass := '';
s_con := 'Provider=Microsoft.Jet.OLEDB.4.0;';
s_con := s_con + 'Data Source=' + dataserver + ';Mode=ReadWrite;';
if username <> '' then
s_con := s_con + 'User ID=' + username + ';';
if userpass <> '' then
s_con := s_con + 'Password=' + userpass + ';';
if datapass <> '' then
s_con := s_con + 'Jet OLEDB:Database Password=' + datapass + ';';
s_con := s_con + 'Persist Security Info=True';
if ADOConnBarCodeTemp.Connected = true then ADOConnBarCodeTemp.Connected := false;
ADOConnBarCodeTemp.ConnectionString := s_con;
ADOConnBarCodeTemp.provider := 'Microsoft.Jet.OLEDB.4.0';
try
ADOConnBarCodeTemp.open;
//showmessage('ok');
except
on e: exception do
begin
MessageBox(0, pchar(e.Message + '请检查,或与服务人员联系'), '连接失败', MB_ICONSTOP);
halt;
end;
end;
end;
{Provider=SQLOLEDB.1;Password=123;
Persist Security Info=True;
User ID=sa;Initial Catalog=Stock;
Data Source=GAJUNLING;
Use Procedure for Prepare=1;
Auto Translate=True;
Packet Size=4096;
Workstation ID=GAJUNLING;
Use Encryption for Data=False;
Tag with column collation when possible=False}
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -