xiaosi2309 发表于 2004-12-7 09:27:00

斑主可真是有风度啊,来去自由,心肠好

rhyme 发表于 2005-1-10 17:20:00

斑竹帮帮忙,小弟有问题请教!


qq:6315551

yinruch01 发表于 2005-4-10 23:15:00

本人加载vlisp程序后,CAD老提示QUIT/EXIT ABORT,不知是什么原因?

zichang 发表于 2005-5-18 17:27:00

是啊!做人要“厚道”!心胸宽广点好!NB也不好!

54flying 发表于 2005-10-16 20:47:00

真是一个好地方

NetBee 发表于 2005-11-17 20:43:00

<P>排序函数:能根据X、Y条件对坐标表进行各种排序<A href="http://bbs.mjtd.com/forum.php?mod=viewthread&tid=9546" target="_blank" >http://bbs.mjtd.com/forum.php?mod=viewthread&tid=9546</A></P>

无痕 发表于 2005-11-24 16:40:00

网蜜(netbee)你的图标不错:)

lhtfh 发表于 2005-12-27 23:47:00

好,一点有用的东西,谢谢了哦!

nameld001 发表于 2006-5-19 23:48:00

<P><A name=31581><FONT color=#990000><B>meflying</B></FONT></A>版主</P>
<P>看了你写的以下程序运行成功,非常好,谢谢</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; WORD-BREAK: break-all; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">(defun DbInitADO ( / ADO_DLLPath) <BR>&nbsp;&nbsp;(if (null adom-Append) <BR>&nbsp;&nbsp;&nbsp;&nbsp;(progn <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(setq ADO_DLLPath <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(strcat (getenv "systemdrive") <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"\\Program Files\\Common Files\\System\\Ado\\") <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;; </FONT>如果查找到类型库<FONT face="Times New Roman"> ... <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if (findfile (strcat ADO_DLLPath "msado15.dll"))&nbsp;&nbsp;&nbsp;&nbsp;;; </FONT>将其输入<FONT face="Times New Roman"> <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(vlax-Import-Type-Library <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:tlb-filename&nbsp;&nbsp; (strcat ADO_DLLPath "msado15.dll") <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:methods-prefix&nbsp;&nbsp;&nbsp;&nbsp;"adom-" <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:properties-prefix "adop-" <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:constants-prefix&nbsp;&nbsp;"adok-" <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;; </FONT>找不到时,则通知操作者<FONT face="Times New Roman"> <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(alert (strcat "</FONT>不能找到以下文件<FONT face="Times New Roman">\n" ADO_DLLPath "msado15.dll")) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;) <BR>&nbsp;&nbsp;&nbsp;&nbsp;) <BR>&nbsp;&nbsp;) <BR>) <BR><BR><BR>;</FONT>生成<FONT face="Times New Roman">MS-Access </FONT>或<FONT face="Times New Roman"> MS-SQL Server </FONT>数据库的连接字符串<FONT face="Times New Roman">&nbsp;&nbsp; <BR>;;;****************************************************************** <BR>;;; </FONT>使用<FONT face="Times New Roman">ODBC(</FONT>不需要<FONT face="Times New Roman">DSN)</FONT>连接<FONT face="Times New Roman">MS-Access</FONT>数据库<FONT face="Times New Roman"> <BR>;;; </FONT>示例:<FONT face="Times New Roman"> (DbConnect_MSAccess1 "d:/dbfiles/products.mdb") <BR>;;;****************************************************************** <BR><BR>(defun DbConnect_MSAccess1 (dbFile) <BR>&nbsp;&nbsp;(strcat <BR>&nbsp;&nbsp;&nbsp;&nbsp;"Provider=MSDASQL;" <BR>&nbsp;&nbsp;&nbsp;&nbsp;"Driver={Microsoft Access Driver (*.mdb)};" <BR>&nbsp;&nbsp;&nbsp;&nbsp;"DBQ=" dbFile <BR>&nbsp;&nbsp;) <BR>) <BR><BR>;</FONT>从内存中释放<FONT face="Times New Roman">VLA</FONT>对象<FONT face="Times New Roman"> <BR>(defun MxRelease (xObject) <BR>&nbsp;&nbsp;vlax-object-released-p <BR>&nbsp;&nbsp;(if (not (vlax-object-released-p xObject)) <BR>&nbsp;&nbsp;&nbsp;&nbsp;(vlax-Release-Object xObject) <BR>&nbsp;&nbsp;) <BR>) <BR><BR>;</FONT>关闭<FONT face="Times New Roman">ADO Connection </FONT>对象并将内存释放出来<FONT face="Times New Roman">&nbsp;&nbsp; <BR>(defun DbCloseConnection (dbConnObject) <BR>&nbsp;&nbsp;(vlax-Invoke-Method dbConnObject "Close") <BR>&nbsp;&nbsp;(MxRelease dbConnObject) <BR>) <BR><BR>;</FONT>关闭<FONT face="Times New Roman">ADO RecordSet</FONT>对象并将内存释放出来<FONT face="Times New Roman"> <BR>(defun DbCloseRecordset (rsObject) <BR>&nbsp;&nbsp;(vlax-Invoke-Method rsObject "Close") <BR>&nbsp;&nbsp;(MxRelease rsObject) <BR>) <BR><BR>;</FONT>布尔测试<FONT face="Times New Roman">RecordSet </FONT>是否为<FONT face="Times New Roman"> Closed (T </FONT>或<FONT face="Times New Roman"> nil) <BR>(defun DbRsIsClosed (rsObject) <BR>&nbsp;&nbsp;(= adok-adStateClosed (vlax-Get-Property rsObject "State")) <BR>) <BR><BR>;</FONT>返回一个<FONT face="Times New Roman">ADO RecordSet</FONT>对象中的记录数<FONT face="Times New Roman"> <BR>(defun DbRsCount (rsObject) <BR>&nbsp;&nbsp;(vlax-Get-Property rsObject "RecordCount") <BR>) <BR><BR>;</FONT>返回<FONT face="Times New Roman">Field</FONT>对象中给定字段数的字段名称<FONT face="Times New Roman"> <BR>(defun DbGetFields (fObject fCount / FieldNumber) <BR>&nbsp;&nbsp;(setq FieldNumber -1) <BR>&nbsp;&nbsp;(while (&gt; fCount (setq FieldNumber (1+ FieldNumber))) <BR>&nbsp;&nbsp;&nbsp;&nbsp;(setq FieldList (cons (vlax-Get-Property (DbRsFieldItem FieldsObject FieldNumber) "Name") FieldList)); setq <BR>&nbsp;&nbsp;); end while <BR>); defun <BR><BR>;</FONT>从<FONT face="Times New Roman">RecordSet</FONT>对象返回<FONT face="Times New Roman">ADO Field</FONT>对象<FONT face="Times New Roman"> <BR>(defun DbRsFields (rsObject) <BR>&nbsp;&nbsp;(vlax-Get-Property rsObject "Fields") <BR>) <BR><BR>;</FONT>返回给定<FONT face="Times New Roman">Field</FONT>对象的字段数量<FONT face="Times New Roman"> <BR>(defun DbRsFieldCount (fObject) <BR>&nbsp;&nbsp;(vlax-Get-Property fObject "Count") <BR>) <BR><BR>;</FONT>获取<FONT face="Times New Roman">Field</FONT>对象的字段名<FONT face="Times New Roman">(</FONT>项<FONT face="Times New Roman">) <BR>(defun DbRsFieldItem (fObject fNumber) <BR>&nbsp;&nbsp;(vlax-Get-Property fObject "Item" fNumber) <BR>) <BR><BR>;</FONT>返回<FONT face="Times New Roman">RecordSet</FONT>对象的<FONT face="Times New Roman">RowSet</FONT>对象<FONT face="Times New Roman"> <BR>(defun DbRsGetRows (rsObject) <BR>&nbsp;&nbsp;(vlax-Invoke-Method rsObject "GetRows" adok-adGetRowsRest) <BR>) <BR><BR>;</FONT>应用一个<FONT face="Times New Roman">ADO LOCK(</FONT>锁定<FONT face="Times New Roman">)</FONT>类型到给定的<FONT face="Times New Roman">RecordSet</FONT>对象<FONT face="Times New Roman"> <BR>(defun DbRsLockType (rsObject lockType) <BR>&nbsp;&nbsp;(cond <BR>&nbsp;&nbsp;&nbsp;&nbsp;( (= (strcase lockType) "OPTIMISTIC") <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(vlax-Put-Property rsObject "LockType" adok-adLockOptimistic) <BR>&nbsp;&nbsp;&nbsp;&nbsp;) <BR>&nbsp;&nbsp;&nbsp;&nbsp;( (= (strcase lockType) "BATCHOPTIMISTIC") <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(vlax-Put-Property rsObject "LockType" adok-adLockBatchOptimistic) <BR>&nbsp;&nbsp;&nbsp;&nbsp;) <BR>&nbsp;&nbsp;&nbsp;&nbsp;( (= (strcase lockType) "READONLY") <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(vlax-Put-Property rsObject "LockType" adok-adLockReadOnly) <BR>&nbsp;&nbsp;&nbsp;&nbsp;) <BR>&nbsp;&nbsp;) <BR>) <BR><BR>(defun Search(RSObject / lst FieldsObject FieldCount FieldList ReturnValue) <BR>&nbsp;&nbsp;(defun getlst&nbsp;&nbsp;&nbsp;&nbsp;(var) <BR>&nbsp;&nbsp;&nbsp;&nbsp;(setq lst nil) <BR>&nbsp;&nbsp;&nbsp;&nbsp;(setq n (length var) i 0) <BR>&nbsp;&nbsp;&nbsp;&nbsp;(while (&lt; i n) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(setq lst (append lst (list (vlax-variant-value (nth i var))))) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(setq i (1+ i)) <BR>&nbsp;&nbsp;&nbsp;&nbsp;) <BR>&nbsp;&nbsp;&nbsp;&nbsp;lst <BR>&nbsp;&nbsp;) <BR>&nbsp;&nbsp;(setq&nbsp;&nbsp;&nbsp;&nbsp;FieldsObject (DbRsFields RSObject)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;; </FONT>将字段作为对象<FONT face="Times New Roman"> <BR>&nbsp;&nbsp;&nbsp;&nbsp;FieldCount&nbsp;&nbsp; (DbRsFieldCount FieldsObject)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;; </FONT>取得列的数量<FONT face="Times New Roman"> <BR>&nbsp;&nbsp;&nbsp;&nbsp;FieldList&nbsp;&nbsp;&nbsp;&nbsp;(DbGetFields FieldsObject FieldCount)&nbsp;&nbsp;&nbsp;&nbsp;;; </FONT>取得列表中所有列的名称<FONT face="Times New Roman"> <BR>&nbsp;&nbsp;&nbsp;&nbsp;ReturnValue&nbsp;&nbsp;(list (reverse FieldList)))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; setq <BR>&nbsp;&nbsp;(setq&nbsp;&nbsp;&nbsp;&nbsp;lst (vlax-safearray-&gt;list (vlax-variant-value (dbrsgetrows rsobject)))) <BR>&nbsp;&nbsp;(setq lst (mapcar 'getlst lst)) <BR>&nbsp;&nbsp;(setq lst (mapcar '(lambda(var1 var2) (append (list var1) (list var2))) (car returnvalue) lst)) <BR>&nbsp;&nbsp;(print lst) <BR>) <BR><BR>;A sample... <BR>(defun c:test (/ getlst dbconnection rsobject SqlString) <BR>&nbsp;&nbsp;(DbInitADO)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;</FONT>初始化<FONT face="Times New Roman"> <BR>&nbsp;&nbsp;(setq DBConnection (vlax-create-object "adodb.connection"))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;</FONT>创建并返回<FONT face="Times New Roman">ADO Connection</FONT>对象<FONT face="Times New Roman"> <BR>&nbsp;&nbsp;(setq RSObject (vlax-create-object "adodb.recordset"))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;</FONT>创建并返回<FONT face="Times New Roman">ADO RecordSet</FONT>对象<FONT face="Times New Roman"> <BR>&nbsp;&nbsp;(setq SqlString "select </FONT>点号<FONT face="Times New Roman">,</FONT>横坐标<FONT face="Times New Roman">,</FONT>纵坐标<FONT face="Times New Roman">,</FONT>井盖高<FONT face="Times New Roman"> from pspoint") <BR>&nbsp;&nbsp;(vlax-invoke-method DBConnection "open" (DbConnect_MSAccess1 "e:\\AAA.mdb") "admin" "" adok-adConnectUnspecified) <BR>&nbsp;&nbsp;(vlax-invoke-method RSObject "open" SqlString DBConnection nil nil adok-adcmdtext) <BR>&nbsp;&nbsp;(search rsobject) <BR>&nbsp;&nbsp;(DbCloseRecordset rsobject) <BR>&nbsp;&nbsp;(DbCloseConnection dbconnection) <BR>&nbsp;&nbsp;(princ) <BR>) <BR><BR></FONT>        <A href="mailto:meflying@mjtd.com" target="_blank" ><FONT face="Times New Roman" color=#000000>meflying@mjtd.com</FONT></A><FONT face="Times New Roman"> <BR></FONT>          <FONT face="Times New Roman">2004-10-10</FONT><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></P>
<P>能不能给个写进ACCESS数据库的例子吗,谢谢了,</P>
<P>&nbsp;</P>

abiao 发表于 2006-5-30 23:59:00

感动啊
页: 1 2 [3] 4 5 6 7 8 9 10
查看完整版本: [公告]提问先看这里,——一些典型及实用问题及其回答!