當前位置:首頁 » 存儲配置 » 存儲用源碼

存儲用源碼

發布時間: 2022-08-03 11:56:13

❶ 如何用plsql查看存儲過程的源碼!!!

1、首先雙擊plsql圖標,進入登錄界面,輸入用戶名和密碼,輸送資料庫實例名。

❷ 如何用plsql查看存儲過程的源碼

通過plsql登錄,界面左邊的菜單有個proceres菜單,(由上致下第四個),點開,選中某個存儲過程右鍵---view

❸ C++ list中存儲不同的類,求源碼,初學者,要能編譯通過的,

懶得寫。。。
做個共有基類,比如:
class object
{
// 能提為共有的就提煉出來
};

使用基類保存就好了,反正子類型基類轉化,直接轉化就好了;
list<object*> test_list;
使用的話,只要你知道第幾個具體是什麼類,你轉換回來就好了。
Student* student = dynamatic_cast<Student*>(test_list_iterator);
Teacher* teacher = dynamatic_cast<Teacher*>(test_list_iterator);

❹ 計算機內部如何存儲數據,關於源碼、補碼的問題!

源碼,反碼,補碼是計算機原理的術語。說白了就是為了理解計算機2進制用的。對於C/C++來說,是和數據類型有關的。整型(包括
char
,short,
int,
long)都是用補碼方式表示有符號數的。
無符號數是使用源碼方式表示的。float和double類型是使用階碼移碼方式存儲數據的。
計算機內部是2進制存儲的,吧一個存儲看作一定類型的數據,就對應著這種類型的計算。
如果沒有類型作為依託,你的假設就不成立了,所以不能說它到底表示是幾。
如果是整型類型,因為第一個位是0,所以不論有符合還是無符號,它都是一個正數;那麼可以認為它表示十進制數字18

❺ 如何獲取存儲過程和函數的源代碼

opencv都帶有這個函數的代碼,你在用的時候,選擇函數,然後右鍵選擇」go
to
denifition
of
cvcalopticalflowhs"--->然後就會跳
到定義cvcalopticalflowhs的定義文件,就會跳到cv.h頭文件來(說明cvcalopticalflowhs在cv.h文件中定義的),然後你去cv.cpp文件,按"ctrl+f"
輸入函數名進行搜索,就能找到cvcalopticalflowhs函數的源文件了。

❻ 求ASP+SQL存儲過程源代碼

create procere proc_newaccount
@name varchar(10),
@pid varchar(20),
@telephone varchar(20),
@openmoney money,
@savingtype varchar(10),
@address varchar (50)='' --默認
as
declare @error int
set @error=0

declare @cardid varchar(19)
exec proc_rand @cardid output
set @error=@error+@@error
while exists (select * from cardinfo where cardid=@cardid)
exec proc_rand @cardid output
set @error=@error+@@error

insert into userinfo (customername,pid,telephone,address) values (@name,@pid,@telephone,@address)
set @error=@error+@@error

declare @customerid int
select @customerid=customerid from userinfo where customername=@name
set @error=@error+@@error

insert into cardinfo (cardid,savingtype,openmoney,balance,customerid) values (@cardid,@savingtype,@openmoney,@openmoney,@customerid)
set @error=@error+@@error

declare @opendate datetime
select @opendate=opendate from cardinfo where cardid=@cardid
set @error=@error+@@error

if @error=0
begin
print '開戶成功! 您的卡號為:'+@cardid
print '開戶日期:'+convert(varchar(25),@opendate)+' 開戶金額:'+convert(varchar(20),@openmoney)
end
else
print '開戶失敗,請重新輸入!'
go

❼ Sql 存儲過程 實例 貼源碼就好了

例子:
CREATE
PROCEDURE
order_tot_amt
@o_id
int,
@p_tot
int
output
AS
SELECT
@p_tot
=
sum(Unitprice*Quantity)
FROM
orderdetails
WHERE
ordered=@o_id
GO
例子說明:
該例子是建立一個簡單的存儲過程order_tot_amt,這個存儲過程根據用戶輸入的定單ID號碼(@o_id),由定單明細表
(orderdetails)中計算該定單銷售總額[單價(Unitprice)*數量(Quantity)],這一金額通過@p_tot這一參數輸出給調用這一存儲過程的程序。

❽ C#編寫的存儲過程 要源碼

使用 C# 編寫擴展存儲過程
下面就以一個簡單的例子來演示如何用 C# 編寫擴展存儲過程。首先,我們創建一個簡單的C#類庫文件:
//C# file: Csserver.cs
using System;
using System.Runtime.InteropServices;
using System.Reflection;
using System.Runtime.CompilerServices;
[assembly: AssemblyTitle("CSServer")]
[assembly: AssemblyDescription("Test SQL .NET interop")]
[assembly: AssemblyVersion("1.0.0.1")]
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("MyKey.snk")]
namespace SQLInterop {
public interface ITest{
string SayHello();
}
[ClassInterface(ClassInterfaceType.AutoDual)]
public class CsharpHelper : ITest {
public string SayHello() {
return "Hello from CSharp";
} } }
然後創建用sn -k 為該類庫創建一個強名密鑰文件,並編譯之。sn -k MyKey.snk
csc /t:library Csserver.cs
注冊該類庫:
regasm /tlb:Csserver.tlb csserver.dll /codebase
這樣一個擴展存儲過程就編寫注冊完了,下面我們在sql server中測試一下效果。
T-SQL stored proc.
DECLARE @object int
DECLARE @hr int
DECLARE @property varchar(255)
DECLARE @return varchar(255)
DECLARE @src varchar(255), @desc varchar(255)
-- 創建對象實例。
EXEC @hr = sp_OACreate 'SQLInterop.CsharpHelper', @object OUT
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
RETURN
END
-- 調用對象方法。
EXEC @hr = sp_OAMethod @object, 'SayHello', @return OUT
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
RETURN
END
PRINT @return
-- 銷毀對象實例。
EXEC @hr = sp_OADestroy @object
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
RETURN
END 註明:擴展存儲過程擴展存儲過程使您得以使用象 C 這樣的編程語言創建自己的外部常式。對用戶來說,擴展存儲過程與普通存儲過程一樣,執行方法也相同。可將參數傳遞給擴展存儲過程,擴展存儲過程可返回結果,也可返回狀態。擴展存儲過程可用於擴展 Microsoft® SQL Server™ 2000 的功能。
擴展存儲過程是 SQL Server 可以動態裝載並執行的動態鏈接庫 (DLL)。擴展存儲過程直接在 SQL Server 的地址空間運行,並使用 SQL Server 開放式數據服務 (ODS) API 編程。
編寫好擴展存儲過程後,固定伺服器角色 sysadmin 的成員即可在 SQL Server 中注冊該擴展存儲過程,然後授予其他用戶執行該過程的許可權。擴展存儲過程只能添加到 master 資料庫中。

❾ 求助主存儲器空間的分配和回收的源代碼

#include <iostream>
#include <memory.h>
#include <vector>
#include <algorithm>
#include <time.h>
using namespace std;

struct block{ //定義空閑塊的記錄表;
int begin;
int length;
};
bool cmp(const block & p1,const block &p2){
if(p1.begin<p2.begin)
return true;
return false;
}
vector<block> mem_table; //內存使用表;
vector<block> free_table; //空閑分區表;
void init(){ //初始化空閑塊,並將空閑信息記錄到空閑分區說明表中;
block now;
while(cin>>now.begin>>now.length,now.begin>=0){
mem_table.push_back(now);
}
sort(mem_table.begin(),mem_table.end(),cmp);
if(mem_table[0].begin>0){
now.begin=0;
now.length=mem_table[0].begin;
free_table.push_back(now);
}
vector<block>::iterator p=mem_table.begin();
while(p!=mem_table.end()&&p+1!=mem_table.end()){
if(p->begin+p->length<(p+1)->begin){
now.begin=p->begin+p->length;
now.length=(p+1)->begin-now.begin;
free_table.push_back(now);
}
p++;
}
if(mem_table[mem_table.size()-1].begin+mem_table[mem_table.size()-1].length<256){
now.begin=mem_table[mem_table.size()-1].begin+mem_table[mem_table.size()-1].length;
now.length=256-now.begin;
free_table.push_back(now);
}
sort(free_table.begin(),free_table.end(),cmp);
}
void applacation(const int lenght){ //內存申請操作;
vector<block>::iterator p=free_table.begin();
while(p!=free_table.end()){ //利用FF查找合適的空閑塊;
if(p->length>=lenght){
block now;
now.begin=p->begin;
now.length=lenght;
mem_table.push_back(now);
if(p->length==lenght) //查找成功就將內存分配出去;
free_table.erase(p);
else {
p->begin+=lenght;
p->length-=lenght;
}
cout<<"分配成功!"<<endl;
return ;
}
p++;
}
cout<<"內存不夠,無法分配"<<endl;
exit(0);
}
void print(){ //主存空間佔用表和空閑分區說明表的列印;
cout<<"主存空間佔用情況"<<endl
<<"起始地址 長度"<<endl<<endl;
for(int i=0;i<mem_table.size();i++)
cout<<mem_table[i].begin<<" "<<mem_table[i].length<<endl;
cout<<endl<<
"空閑區表"<<endl
<<"起始地址 長度"<<endl;
for(int i=0;i<free_table.size();i++)
cout<<free_table[i].begin<<" "<<free_table[i].length<<endl;
}
void recover(){ //內存的回收;
int t;
t=rand()%mem_table.size(); //隨機選取一個非系統內存塊進行回收;
while(t==0)
t=rand()%mem_table.size();
vector<block>::iterator p=t+mem_table.begin();
free_table.push_back(*p);
mem_table.erase(p);
sort(free_table.begin(),free_table.end(),cmp);
for(p=free_table.begin();p!=free_table.end();p++){ //將內存塊與空閑分區進行合並;
if(p+1!=free_table.end()&&p->begin+p->length==(p+1)->begin){
p->length+=(p+1)->length;
free_table.erase(p+1);
}
}
}
void wait(int & length,int & select){
cout<<endl
<<"請輸入要做的操作"<<endl
<<"1.申請空間"<<endl
<<"2.結束"<<endl;

cin>>select;
if(select==1) cin>>length;
else
{
cout<<"結束"<<endl;
exit(0);
}
}
int main(){
init();
srand(time(0));
int length,select;
while(1){
wait(length,select);
recover();
applacation(length);
print();
}
return 0;
}

❿ 怎樣閱讀InnoDB存儲引擎源碼

1.理解MySQL內核對於DBA的重要性;
如果精通內核對於搞資料庫的人來說,可以稱得上專家。開源資料庫的一個最大好處就是可以去讀源碼,根據自己的需求去進行個性化的開發,畢竟資料庫根據業務最基本的也要分為OLTP,OLAP,系統類型的不同,決定了數據很多參數配置以及核心參數的調整也是不一樣的。在調整這些參數前,如果不明白實現的原理,只是根據經驗值去調整肯定是不行的,參數可以進行調整,比如減少事務表的長度,修改並發時程來減少鎖爭用等,如果不明白源碼裡面的實現方式,是沒有辦法去修改的,調整參數無法完成的個性化需求,可以通過源碼去實現。
如果商業資料庫比如oracle開放源碼,很多的核心原理得到確認,對於深入學習資料庫的人來說是個很大的財富,但是這是不可能實現的。mysql的開源化,對於學習mysql來說個很大的寶庫,從源碼里可以看出各個引擎的實現方式,而這些核心的原理在很多文檔里是看不到的。以前pub里有個大牛說過搞開源化的資料庫,如果看不懂源碼的話,只能在表面上做工作,搞幾年下來,基本就是靠運維,部署,高一些讀寫分離的架構層面的運維工作,不能稱其為專家。
作為MYsql DBA,如果精通源碼,對於資料庫的理解會深入很多,阿里也是從源碼上修改,可以支持自己的業務需求。MYSQL這幾年的發展也是靠很多的人根據自己的需要寫了很多分享行的代碼,可見開源化對於mysql的發展起到重要作用。優秀的DBA需要去閱讀一些代碼,當比較極端的業務需求需要去定製化資料庫的一些功能時,可以從源碼級別開發設計適合自己的引擎,mysql在引擎方面預留了很多的介面,可以進行個性化開發。目前我能了解的有網易研究院搞的TNT引擎。
2.怎樣閱讀InnoDB存儲引擎源碼;
接觸mysql也有幾年的時間,很多時候都是閱讀官方文檔,沒有真正的從源碼去分析和閱讀。以前閱讀過姜承堯的innodb引擎這本書,是從一些核心原理上進行講解,非常深入和精彩。要想InnoDB存儲引擎源碼需要C和C++的基礎,自己能夠編譯一些程序,確保在修改後能夠編譯成功。我看過InnoDB存儲引擎源碼,發現裡面的源碼量非常大,如果要通讀一遍的話,需要很長的時間,而且也非常枯燥,讀一些就難以堅持下去。
經過一段時間的積累,我感覺是從一些比較常見的問題去閱讀,比如讀寫,非同步的實現,lock,latch,mutex的實現方式,還有內存管理的一些鏈表等去閱讀,每天抽時間讀一讀,就當是消遣一下。對於索引,實務,緩存等內核的源碼一點一點的去看,帶著理論知識去理解源碼,反過來用源碼的實現原理來糾正和補充理論知識,在這個過程中可以快速提高自己。
3.說說讀完試讀章節後您的感想?
這是本非常好的書,可以對著作者以前寫的innodb引擎的那本書一起結合看。試讀章節主要分享了兩章內容:
第一章是概括性的知識,介紹了INNODB存儲引擎的歷史,如果知道的同學可以直接略過,後續內容對於源碼的版本,風格,編譯的方式做了一些介紹,主要是給我們一個源碼閱讀的認識,對於作者分析的源碼方法十分認可,按照層次去閱讀,這樣可以非常容易的去理解。對於我們這些源碼分析的初學者來說可以按照作者的建議,進行按部就班的閱讀。
第二章介紹了一些INNODB存儲引擎的內存管理的實現,基本數據結構,對於後續做個鋪墊。以前都是直接學習理論,記住了這些的內容就可以了,現在從源碼角度可以去看看實現方式。這些內容如果前期學的比較深入的話,可以大體看看,如果對這些鏈表,內存管理方法不是很清楚的可以好好讀讀,畢竟這是深入學習的基礎。
這是分析源碼方式的卷1,後續期待作者更多精彩的內容分享。讓更多的人喜歡並且可以閱讀源碼,為開源化資料庫作出貢獻。

熱點內容
分解質因數c語言 發布:2024-10-05 12:15:53 瀏覽:776
mysql存儲過程字元編碼 發布:2024-10-05 12:05:48 瀏覽:180
c語言命名 發布:2024-10-05 11:56:38 瀏覽:616
編程哪個好學習 發布:2024-10-05 11:50:59 瀏覽:999
為什麼不買安卓旗艦 發布:2024-10-05 11:46:04 瀏覽:380
ostcb編譯條件 發布:2024-10-05 11:28:24 瀏覽:993
win10怎麼關閉登錄密碼 發布:2024-10-05 11:09:55 瀏覽:935
降溫解壓器 發布:2024-10-05 10:54:15 瀏覽:421
軋鋼壓縮空氣 發布:2024-10-05 10:54:10 瀏覽:185
京東微信密碼是多少 發布:2024-10-05 10:28:48 瀏覽:488