2012-04-17 8 views
1

私はPERFORCEを使用しています。私のPERFORCEデータにアクセスするためにODBCデータソースを設定するp4reportsプログラムが見つかりました。私は必要な情報を正確に返すクエリを作成しました... ほぼ。ここでPERFORCE SQLのファイル名の先頭に末尾に付加されたファイル名はありません

はクエリです:

SELECT a.file, a.time, a.action, a.revision, a.change, b.description 
FROM files a, changes b 
WHERE a.change = b.change AND ((b.p4options='longdesc')); 

問題は、このようa.file列は、全体のパスとファイルの名前を返すことである:

//depot/folder_1/folder_2/.../file_name.txt 

私はこれをしたいと思います次のようにファイル名を格納するだけです:

file_name.txt 

これを行うことができるSQLクエリを知っている人はいますか?今では、ファイルがフォルダ構造内にどのくらい深く入れ子になっているのでしょうか?

ここにPERFORCE SQLレポート関数へのリンクがあります。いくつかの基本的な文字列関数ですが、私はこれらの関数を使っていつも正しいテキストを返すことができないのでしょうか。

http://www.perforce.com/perforce/doc.current/manuals/p4report/ab_functions.html#1045728

は、MySQLでは、私はこのようなものだろう:

SELECT right(a.file,locate("/",reverse(a.file))-1), a.time, a.action, a.revision, a.change, b.description 
FROM files a, changes b 
WHERE a.change = b.change AND ((b.p4options='longdesc')); 

をそして、それは仕事だろうが、私の知る限りのPERFORCE SQLにはreverse機能はありません。どんな助けでも大歓迎です!

ありがとうございます!

+2

P4ReportとそのデータベースはSQL-92に準拠しています。 SQL-92には文字列の反転機能はありません。 p4-randallの提案は、あなたがレポート/出力レイヤーで変換を行うことができない限り、あなたがこの場合に行く方法かもしれません。 – cairnz

答えて

3

PERFORCEデータを通常のデータベースにレプリケートするP4toDBを見てみるとよいでしょう。これにより、より高度なSQLクエリを実行したり、レポートエンジンを使用したりすることができます。

http://kb.perforce.com/article/1172/p4todb-readme

+0

PERFORCEメタデータの変更はSQLデータベースにどのくらい複製されますか?すなわち、私がチェンジリストを提出した場合、どのくらいの後に変更についてデータベースに問い合わせることができますか? – Dennis

+0

ええ、私はまだこれを試していませんが、ここで提供されているリンクには多くの良い情報があります。 –

+0

最初に記事を読んだ。私は上記の質問をしたので、明確な答えはありません。 – Dennis

関連する問題