在Dll文件里,定義的Function不能返回字符串嗎?歡迎計論! 另:歷史數據處理,想看看大家是怎么處理的.(100分)

  • 主题发起人 主题发起人 HeXiang Lee
  • 开始时间 开始时间
H

HeXiang Lee

Unregistered / Unconfirmed
GUEST, unregistred user!
1.我做了一個Dll文件,在里面寫了一個返回String的函數,可是調用時總是出現
"非法指針錯誤",讓它返回Pchar類型就沒有問題.不知是什么原因.
2. Sql Server 中歷史數據處理
我有几個想法:1.對于那些數據量較大的的表,分別在原數據庫中加多一個結構相同的表.
在一定的條件下,把不用的數據轉到此表中.
2.在程序里作一個月結動作,將記錄按月結轉到一個結構相同的新表中.這
樣每個表就會會生成一個新表.查詢時顯示月份對話框,讓用戶選擇,
人相應月份的表里提取數據.新表名格式:'XXX'+YY(年份)+MM+(月份)
3.對數據庫再加多一個等同的數據庫,相應表的歷史數據全都轉到此數據
庫中.
不知到各位大俠是怎樣處理的!
歡迎大家討論,言之有理者有分.
 
Important note about DLL memory management: ShareMem must be the
first unit in your library's USES clause AND your project's (select
Project-View Source) USES clause if your DLL exports any procedures or
functions that pass strings as parameters or function results. This
applies to all strings passed to and from your DLL--even those that
are nested in records and classes. ShareMem is the interface unit to
the BORLNDMM.DLL shared memory manager, which must be deployed along
with your DLL. To avoid using BORLNDMM.DLL, pass string information
using PChar or ShortString parameters.

 
2.我以前在dos时用foxpro开发的程序就是用方法(2),每月把数据移到大表中后删除,
但如果你用sql server根本不用管,就用一个表!
 
在Dll中使用string类型要用到BORLNDMM.DLL,而且在调用模块以及dll单元的use子句中
引用sharemem单元(要在第一个)。
我大多数时间用SQL Server其它数据库不太清楚,我是直接用SQL Server的存储过程来
备份,然后清除数据,我也不知道这种方式好不好,如果有更好的方法望多多指教。
 
2建立一个相同表结构的bak表由数据清理程序定期转移原表中的数据至bak表
(可以用参数化设置每个表的生命期由用户自己进行维护),
在更长的时间后(如一年)将bak表再备份至其它的存储介质中(如光盘)并删除bak表数据
 
to All:
第一個問題搞定了,功勞在于Liu_liu,lhn1028.
謝謝大家!
還有剩下的第二個問題沒有主意.
否然Sql的處理能力很不錯,但是太多的數據在一個表里會讓服務器隨著數據的一天一天
增加會越來越慢.所有的數據都放在數據庫里也不行,因為數據庫要定期備份,這樣Bak文件
會一天一天變大,程序時時在變動,數據庫也在不斷的修改中,備份只好是全部備份.
講講你們的處理方法吧 !
 
對於第二個問題,我的想法是這樣的,我曾經做過一個類似的東東,
我的一張表一天的記錄就有7万條,然後就是每天都有怎麽多數據,
一年下來有很多條了,但是我程序運行的速度還可以的,不是很慢。
其實我認爲,如果你在專業的服務器上運行SQL Server的話,這些
速度都不會太慢的。
我的理解,有哪位大俠有其他高見,青賜教。
 
死婊子,帮你up~~~~~~~~
 
对于第二个问题:
和系统一开始的设计与分析有关系
象这种情况可以考虑使用SQL的出版与复制功能
在业务允许的范围内的数据在一个服务器A上
另外做一个同步的服务器B
业务运行的数据在A上
而历史数据在B上
这样对于业务的运行是没有影响的
 
只需将函数的函数由string改为pchar
 
鸟人,你与你MM现在怎么样了?
 
何弟﹐你老婆怎么樣了﹐鳥人的這個緣可能沒有多大指望了﹐都是臭鳥人惹的禍﹐你把他砍了
看他以后已經怎么過
 
这么久没有人能回答,结束算了。
 
多人接受答案了。
 
后退
顶部