站长社区 _ SEO论坛 _ SEO优化

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 473|回复: 3
收起左侧

[PowerBuilder] 急求,急求急求急求 PB操作dbf表的问题

[复制链接]
jade9cui 发表于 2019-5-8 12:19:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
在vfp 可以使用 select * from 表1 into table 表2 创建一个同表1一样的表2
( ?; h7 R- G. h" j2 L
0 Z. e2 R# N T& g% @4 l; G现在PB 通过ODBC连接dbf所在目录,同样想使用上面的语法 创建一个表2
& Z! L. ?" [; J6 V1 L
( ]* J# y3 Z9 n$ }8 c6 a JODBC_FOX = Create transaction
" l, S, M p" G6 I" ?5 t ODBC_FOX.DBMS = "ODBC"
# Z i. B$ b3 r( V% m/ n2 R' @ WODBC_FOX.AutoCommit = False
8 x5 T$ c, G$ v/ o" EODBC_FOX.DBParm = gs_dbparm_fox
! j: F7 S. t9 @7 d9 l# u
% O1 r: Y. _+ s% L Disconnect Using ODBC_FOX;
2 d1 ~* P8 | V* f: v% m2 hConnect Using ODBC_FOX;
6 Q, l" z5 i- I0 V4 J" ^: T) l% ] If ODBC_FOX.Sqlcode = -1 Then
7 T( g) t* E5 W* K4 M# z MessageBox("提示信息","无法连接数据库!错误信息:~r" + ODBC_FOX.sqlerrtext,StopSign!)
0 H: q2 J7 x8 v Return -1
) z, A a* b6 b8 V) X3 a End If
, T* p5 E ~3 \0 I
7 l l+ F9 x+ ]* ]3 P0 E0 M0 v1 l- J7 m String ls_sql,ls_err
: O" }* {2 Y4 K2 n! Z1 H
3 {; @% D/ c7 l! O( f8 s' Ils_sql = "select * from bb into table aa"
# ^# I" \! C1 b( C7 h6 v4 {1 M ODBC_FOX.AutoCommit = TRUE 
2 s' m- e: z& c1 x# ?: @; o9 fEXECUTE IMMEDIATE :ls_sql  Using ODBC_FOX; 
9 t3 X7 U. T# c4 N" {; U" {! N, O If ODBC_FOX.Sqlcode<0 Then  
9 C/ @. z/ ^3 W0 j$ l; T    ls_err=string(ODBC_FOX.Sqlcode)+";"+ODBC_FOX.sqlerrtext  
" Z) g- B. H9 S2 _     messagebox('错误信息',"delete时出错!~n"+ls_err,stopsign!)
# j( e4 H* I7 t6 y( D     Return -1
" b4 A6 l# `7 d2 u3 ~End If
6 g! r# T* J2 @: s+ n/ d commit using ODBC_FOX;
5 t2 D) L$ A+ n% nODBC_FOX.AutoCommit = False
! B, t6 I, n: [
! T: |: \9 [; @4 G 创建不成功,哪位高手指点一下,万分感谢
回复

使用道具 举报

 楼主| jade9cui 发表于 2019-5-8 12:50:45 | 显示全部楼层
String ls_sql,ls_err
/ n* w7 n# ~9 l M' i% R; k& q* T& S
& C) _# q+ ~' H' l7 b" S ls_sql = "select * from bb into table aa"
# q! r' C8 y% C$ C ODBC_FOX.AutoCommit = TRUE 
! X2 W4 g& X5 `1 u, S: K6 [EXECUTE IMMEDIATE :ls_sql  Using ODBC_FOX; 
' v- n# g: ^- E; m/ |( @ If ODBC_FOX.Sqlcode<0 Then  
+ ^- e( v& S. c     ls_err=string(ODBC_FOX.Sqlcode)+";"+ODBC_FOX.sqlerrtext  
3 Z4 i+ \" ` B' Z    messagebox('错误信息',"delete时出错!~n"+ls_err,stopsign!)
G& k$ G+ Z4 E w& C    Return -1
: \* Y5 I8 |' v$ MEnd If
5 @# h r" B+ F* w* l7 s commit using ODBC_FOX;
9 S9 \/ h* T! Q9 {% e ODBC_FOX.AutoCommit = False
6 h Y3 \( j6 w8 \( A* | \2 R6 A) F
3 G1 F1 B& S, m c4 R 这个放在哪个数据库也不会执行成功的
回复 支持 反对

使用道具 举报

sola 发表于 2019-5-8 14:13:30 | 显示全部楼层
select * from bb into table aa
3 K4 M7 W& O @; J; T+ |
) _: S, y! Z7 F 应该为
- R, y9 ~9 F% D" n7 O) I L+ X
2 b: I% Z" b( U9 R; hinsert into aa select * from bb
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|易采站长站 ( 蒙ICP备14002389-1号 ) |

GMT+8, 2020-5-25 23:40

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表