如何在PB中寫sql語句查詢數?如何在PB中寫sql語句查詢數據 愛問知
首先在ID上創建聚集索引是必須的。
如果ID是連續的,樓上的的用id來限定語句范圍是很快的。如果id不是連續的,樓主的語句使用了not in,一般這樣效率是很低的。
可以把語句改成select top M *from tablewhere id> (select max(id) from (select top N id from table order by id) a)order by id這樣可以一定程度上提高一些性能。比如我的表中有300多萬條記錄,使用樓主的語句執行時間需要9秒多,而用我的語句3秒多。
在pb中用SQL語句的一個問題
我理解了半柱香的功夫,貌似猜到了一些,如果你描述的再詳細一點點,我們也不用猜了你的這個rq,我猜是你某個表的一個字段叫rq,可能是“日期”吧,那我就當它是日期了啊你想在文本控件里輸入一個值給gh(貌似“工號”,又是猜的……)、兩個日期類的值給ls_rq_1、ls_rq_2,然后組織一條SQL,查詢gh=輸入值 且 rq介于你輸入的兩個日期之間的數據——————不知道這樣理解對不對如果對了~~~(我一會肯定買彩票去~~~)那就往下看,不對就return吧,后面不用看了。
=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*變量的定義及取值部分不動ls_sql = ls_sql + ' where '+'gh'+" = '" + ls_gh + "'"+ 'and rq > convert(date,' + ls_rq_1 + ')'+ 'and rq < convert(date,' + ls_rq_2 + ');'//--------------------------------------------------------就是類似:select * from 表where gh = '1001'and rq > convert(date,'2010-3-12')and rq < convert(date,'2010-3-15');因為你定義的ls_rq_1、ls_rq_2是字符型的,所以用SQL時,須用convert()函數轉換為日期型(或者你PB程序里直接定義兩個日期型的變量算了)=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*可能是正解,也可能是風馬牛不相及,如果我猜的不對,咱們再慢慢研究。
如何在PB中寫sql語句查詢數據? ??請各位老師指點,最好能抓個圖
你是要在PB程序中寫,還是要找個平臺,像SQLSERVER的查詢分析器一樣自己寫查詢語句查詢結果?
如果程序中寫,那么就自由了,只要可以執行的地方,都可以寫。這里寫的一般都會是增加修改刪除的insert,update, delete語句,而查詢語句,在PB編程中一定要范圍唯一一行并賦值給變量才行。
而如果是像查詢分析器那樣寫的話,在上方tools菜單下,DataBase Painter子菜單,打開一個窗口,列出你在PB配置的所有數據庫,數據庫配置也在這個地方做的。
下邊有幾個tab頁,其中ISQL Session一頁就是寫語句的地方,這里一次只能運行一條,并以分號結尾。寫好之后,點擊Design菜單中的Execute ISQL子菜單運行。查詢結果會自動切換到tab頁中的result頁去。
其實DataBase Painter和Execute ISQL這兩個子菜單按鈕在界面上都有對應的快捷圖標,找找名稱就知道了。
pb9.0執行sql語句問題
在PB的函數或事件里面,都可以執行SQL語句;SQL語句所用到的變量要加冒號‘:’,語句必須用分號‘;’結尾。
執行帶有返回值的SELECT語句必須要有INTO語句,并定義接收值的變量,如:
SELECT UserNo,UserName INTO :ls_UserNo,:ls_UserName FROM T_User WHERE UserNo='TestUser';
UPDATE和DELETE語句語法同SQL語法一樣,執行完之后還需要對事務進行提交:
UPDATE Employee
SET emp_name = :ls_Name
WHERE *_num = :Emp_num
USING SQLCA;
IF *ws > 0 THEN
COMMIT USING SQLCA ;
END IF
-----------
DELETE FROM Employee
WHERE *_num = :li_num ;
詳細內容請參考PB的幫助文檔。
如何在PB中寫sql語句查詢數據
首先在ID上創建聚集索引是必須的。
如果ID是連續的,樓上的的用id來限定語句范圍是很快的。
如果id不是連續的,樓主的語句使用了not in,一般這樣效率是很低的。
可以把語句改成
select top M *
from table
where id> (select max(id) from (select top N id from table order by id) a)
order by id
這樣可以一定程度上提高一些性能。
比如我的表中有300多萬條記錄,使用樓主的語句執行時間需要9秒多,而用我的語句3秒多。
在PB的什么模塊中寫sql語句查詢l數據?并把查詢結果輸出為dbf數據庫
在DB PAINTER中的ISQL SESSION頁。
點上方菜單的tools,選擇DataBase Painter一項。
這里面是你在PB中配置的數據庫連接,打開后看右側,有個tab頁叫ISQL Session,這這里面寫查詢代碼,最后用分號(英文的分號)結尾,點Design里面的Execute ISQL執行查詢。
其實在PB的快捷圖標中,DataBase Painter和Execute都是有對應的圖標的,點圖標按鈕就行。
查詢之后,結果會列在Result一頁,自動會跳轉到那頁。然后在上面點右鍵,save rows as一項,可以另存出來。不過我好想不記得里面有另存成DBF的選項,有DIF,還有TEXT,CSV等等的。
PB中的數據窗口的數據源SQL語句在哪
幾個與PB連接數據庫相關的問題 * script 語言里的事務處理對象怎么理解 PowerBuilder程序與數據庫之間傳遞信息的一個結構變量,共有15個成員.你可以詳細列表它的所有成員看看它的組成.PB的應用程序會初始化一個全局的結構體變量,SQLCA,當然你也可以自定義一個自己的事務對象. 1 DBMS string 所使用的數據庫管理系統的名字,如Sybase,Oracle,ODBC。
2 Database string 要連接的數據庫名字。 3 UserID string 連接數據庫所用的用戶名。
有的DBMS不需要此項。 4 DBPass string 用戶連接數據庫的口令。
5 Lock string 這是數據庫的保護級別,一般不必給出。 6 LogID string 登錄到數據庫服務器上的用戶名,有的DBMS不需要此項,但Sybase和Oracle需要指定這個參數。
7 LogPass string 登錄到數據庫服務器上的用戶口令。這個屬性可設可不設,但Sybase和Oracle需要指定口令。
8 ServerName string 數據庫服務器名。 9 AutoCommit boolean 指定是否將數據庫設置成自動提交所有事務。
默認是False,也就是說,必須在應用程序中進行事務管理,并在適當的時候對數據庫提交事務。如果選擇True,則每個事務都由系統自動提交。
10 DBParm string 用于向數據庫傳遞特殊信息的屬性。 11 SQLCode long 指示最近一次SQL操作失敗或成功。
它的取值為: 返回結果 0 無錯誤。 -1 出現一個錯誤。
100 沒有檢索到數據。 12 SQLNRows long 最近一次SQL操作影響的行數,數據庫不同其含義也不同。
13 SQLDBCode long 數據庫錯誤代碼。不同的數據庫的含義不同。
14 SQLErrText string 相應于SQLDBCode屬性中錯誤碼的文字說明。 15 SQLReturnData string 返回DBMS執行SQL的附加信息,不同的DBMS其值不同。
2.我常見到做好的PB程序使用.ini文件來控制與數據庫連接,可以方便的進行應用程序移植只需修改其中與數據庫連接參數即可,我想問這些.ini文件只能使用手工編寫嗎,我見到很多.ini文件參數極多不象手寫好象是機器生成的,不知道如何生成啊?請大家指教 1、其實PB中在新建---點TOOL----FILE EDIT 可以生成(編輯)INI文件。最直接就是工具欄中的EDIT圖標。
2、機器生成代碼是:點DATABASE圖標-----選擇連接方式。如:選 MSS MICROSOFT SQL SERVER 右鍵-NEW PROFILE 按要求填定一些參數后在--PREVIEW中可以看到代碼,把它復制到INI文件中就行了。
3.編程經驗--PB數據庫連接 作者:郭洪建 無法確定網上來源,如有準確首發,請與本站聯系 通過這些年的信息系統開發經驗,使我對POWERBUILDER的理解更進一步,最近在開發某子系統模塊時,遇到了一個奇怪的問題,這里給大家介紹一下. 通常在使用PB和數據庫管理系統(DBMS)連接時,使用兩種方式: 一、開放數據源接口(ODBC)連接 ODBC是通過支持美國微軟公司開放服務結構(WOSA,Windows Open Services Architecture)中的一部分.在PB 中通過配置 *='ODBC'對象的屬性可使應用程序通過ODBC連接到數據庫。 ODBC的具體配置包含了數據源、驅動程序類型、緩沖池等各種細節參數。
例子: * = "ODBC" *mmit = False *="C,C" PWD="',C" 二、專用數據庫接口 每個數據庫管理系統(DBMS)均提供相應的客戶端驅動,為了更好的服務于數據庫。 在這里我們使用的是Microsoft sqlserver 2000 的客戶端程序。
通過設置 * ="MSS Microsoft SQL Server" 使客戶端通過專用數據庫接口連接到數據庫。 該類接口的參數配置除了服務器名、數據庫名、LogId、LogPass外還包含了連接協議等用戶驗證方式等,可通過服務器端或客戶端的配置程序進行配置。
*= "MSS Microsoft SQL Server" //接口類型 *se= "master" //數據庫 *= "" *= "" *= "sa" *s= "xxxx" *Name= ".\xxx"http://服務器名 *= "Commit" *mmit= false 以上介紹的是PB與數據庫連接時常用的方法。 往往根據不同的應用環境選擇連接方式, 在單機環境下多采用的是ODBC連接,因為在發行環節上相對要容易些。
在網絡環境下多采用專用數據庫連接,這樣可以提高系統的可靠性與執行效率。專用數據庫的發行環節往往要配上相應DBMS客戶端的動態連接庫(DLL),并把它. PB與ASA數據庫連接問題! 一.連接步驟 1.添加數據源。
WINDOWS98中----我的電腦---控制面版----ODBC數據源32位-----系統DSN---添加---選擇你使用的數據庫 2.在工具條上點擊DB PROFILE 選擇已建立好的數據庫連接,單擊EDIT在彈出的對話框中選PREVIEW里面就是連接數據庫的語句,COPY就OK了。 二.DB_profile寫法(以*的tax例程為例) * [Database] DBMS=ODBC Database=test DbParm=c 三.打包所需文件 參看以下文章: 四.容易出現的問題及解決方法 導致ASA數據庫無法連接的問題有以下幾種: 1、ODBC配置錯誤。
沒有配置數據源,數據庫的用戶名或口令錯誤等都會導致數據庫無法連接。 解決的辦法。
求PB或者SQL語句語法
是要這種效果嗎?
-->; 測試數據:@tb
declare @tb table([name] varchar(7))
insert @tb
select '張三1' union all
select '張三12' union all
select '張三a' union all
select '張三12a' union all
select '張三B' union all
select '李四' union all
select '張三'
select name,case when
substring(reverse(name),2,1) not like '[0-9]' and substring(reverse(name),2,1) not like '[a-z]'
then substring(name,1,len(name)-1) else ''end as newname
from @tb where right(name,1) like '[0-9]' or right(name,1) like '[a-z]'
/*
name newname
------- -------
張三1 張三
張三12
張三a 張三
張三12a
張三B 張三
(5 行受影響)
*/
關于PB中用SQL語句in的用法,該怎么解決
If。Then。Else 語句
根據表達式的值有條件地執行一組語句。
語法
If condition Then [statements][Else elsestatements]
或者,可以使用塊形式的語法:
If condition Then
[statements]
[ElseIf condition-n Then
[elseifstatements] 。
[Else
[elsestatements]]
End If
If。Then。Else 語句的語法具有以下幾個部分:
部分 描述
condition 必要參數。一個或多個具有下面兩種類型的表達式:
數值表達式或字符串表達式,其運算結果為 True 或 False。如果 condition 為 Null,則 condition 會視為 False。
TypeOf objectname Is objecttype 形式的表達式。其中的 objectname 是任何對象的引用,而 objecttype 則是任何有效的對象類型。如果 objectname 是 objecttype 所指定的一種對象類型,則表達式為 True,否則為False。
statements 在塊形式中是可選參數;但是在單行形式中,且沒有 Else 子句時,則為必要參數。一條或多條以冒號分開的語句,它們在 condition 為 True 時執行。
condition-n 可選參數。與 condition 同。
elseifstatements 可選參數。一條或多條語句,它們在相關的 condition-n 為 True 時執行。
elsestatements 可選參數。一條或多條語句,它們在前面的 condition 或 condition-n 都不為 True 時執行。