jeudi 27 mars 2014

Get élement from Liste sharepoint avec une CAML Query

  public static String LoadDocById(int idDoc)
  {
            String etape = "Debut Methode";
            SPList list = SPContext.Current.Web.Site.RootWeb.Lists["Docs"];
            if (list != null)
            {
                etape = "Litse non null";
string caml = @"<Where><Eq><FieldRef Name='ID' /><Value                     Type='Text'>2428</Value></Eq></Where>";

                SPQuery qry = new SPQuery();
                qry.Query = caml;
                SPListItemCollection items = list.GetItems(qry);
                            

foreach (SPListItem item in items)
                    {
                        String nomFichier = "";
                        if (item2["Nom"] != null)
                        {
                            nomFichier = item["Nom"].ToString();
                        }

                        if (item2["ID"] != null)
                        {
                            nomFichier = item["ID"].ToString();
                        }
                    }
                }

 return etape;

            }

lundi 24 mars 2014

Problème Base de données SQL suspect :


Solution de réparation de la base de données :


EXEC sp_resetstatus Nom_Base;
ALTER DATABASE Nom_BaseSET EMERGENCY
DBCC checkdb(Nom_Base)

ALTER DATABASE Nom_BaseSET ONLINE, SINGLE_USER
DBCC CheckDB (Nom_Base, REPAIR_ALLOW_DATA_LOSS)

ALTER DATABASE Nom_Base SET MULTI_USER

mardi 11 mars 2014

A CAML Query Quick Reference

Single Line of Text

Value TypeText
Example<Query><Where><Eq><FieldRef Name="Title" /><Value Type="Text">Hello World!</Value></Eq></Where></Query>
NotesThis is one of the simplest queries. The example selects items with a title equal to “Hello World!”

Multiple Lines of Text

Value TypeText
Example<Query><Where><Contains><FieldRef Name="Body" /><Value Type="Text"><![CDATA[</a>]]></Value></Contains></Where></Query>
NotesIf this is a Rich Text field, you can use <![CDATA[]]> around the value to prevent parsing errors when passing HTML into the query. Alternatively, you can encode the HTML by replacing < with &lt;, > with &gt;, and " with &quot;. This query uses <Contains> to return any items that contain a hyperlink in the body field by looking for the closing </a> tag.

Person or Group (By Name)

Value TypeText
Example<Query><Where><Eq><FieldRef Name="Author" /><Value Type="Text">Josh McCarty</Value></Eq></Where></Query>
NotesThis will look for items created by any user with “Josh McCarty” in the Name field of the User Information list. If more than one person has the same display name in the user list, it will select items created by all users with that name.

Person or Group (By ID)

Value TypeInteger
Example<Query><Where><Eq><FieldRef Name="Author" LookupId="TRUE" /><Value Type="Integer"><UserID /></Value></Eq></Where></Query>
NotesBy adding LookupId="TRUE" to the <FieldRef /> and using <UserID /> as the value, the query will filter based on the current user. You can also pass the ID of a specific user in place of <UserID /> (e.g. <Value Type="Integer">283</Value>) if you don’t want to filter by the current user. IDs are always unique, so this method ensures that only one user is a valid value.

Lookup (By Text)

Value TypeLookup
Example<Query><Where><Eq><FieldRef Name="State" /><Value Type="Lookup">Arizona</Value></Eq></Where></Query>
NotesThis will look for items with “Arizona” in the State field. If more than one state has the same display name (not likely in this example, but for other lookups it could happen), it will return items from all states with that display name.

Lookup (By ID)

Value TypeLookup
Example<Query><Where><Eq><FieldRef Name="State" LookupId="TRUE" /><Value Type="Lookup">4</Value></Eq></Where></Query>
NotesBy adding LookupId="TRUE" to the <FieldRef />, the query will filter based on the ID of the lookup rather than the text value. IDs are always unique, so this method ensures that only one state is a valid value.

Date (Day Only)

Value TypeDate
Example<Query><Where><Eq><FieldRef Name="Created" /><Value Type="DateTime">2012-01-10</Value></Eq></Where></Query>
NotesThis type of query seems to work whether the value type is set to DateTime or just Date as long as the value is formatted properly (yyyy-mm-dd). It also works if <Today /> is used as the value (you can offset the current date; e.g. use <Today OffsetDays="-7" /> for 7 days ago). <Today />.

lundi 10 mars 2014

Détecter la version du browser

Méthode 1:

<script>function getInternetExplorerVersion()
{
    var rv = -1; // Return value assumes failure.
    if (navigator.appName == 'Microsoft Internet Explorer')
    {
        var ua = navigator.userAgent;
        var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
        rv = parseFloat( RegExp.$1 );
    }
    return rv;
}
function checkVersion()
{
    var msg = "Le Portail Internet du Ministère de l’économie et des Finances est optimisé pour les navigateurs Internet explorer 9 , Chrome 33.0 et Firefox 27.0.1. Pour une meilleure navigation, veuillez mettre à jour votre navigateur.";
    var verIE = getInternetExplorerVersion();

    if ( verIE > -1 )
    {
      if (! (verIE > 8.0) )
            alert( msg );
    }

}
checkVersion();</script>


Méthode 2:

<script>navigator.sayswho= (function(){
    var ua= navigator.userAgent, tem,
    M= ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*([\d\.]+)/i) || [];
    if(/trident/i.test(M[1])){
        tem=  /\brv[ :]+(\d+(\.\d+)?)/g.exec(ua) || [];
        return 'IE '+(tem[1] || '');
    }
    M= M[2]? [M[1], M[2]]:[navigator.appName, navigator.appVersion, '-?'];
    if((tem= ua.match(/version\/([\.\d]+)/i))!= null) M[2]= tem[1];
    return M.join(' ');
})();

var navigatorMEF = navigator.sayswho;

if(navigatorMEF == 'MSIE 7.0' || navigatorMEF == 'MSIE 8.0' || navigatorMEF == 'MSIE 6.0' || navigatorMEF == 'FIREFOX 19.0')
{
 var msg = "Message ";
  alert( msg );
}</script>

vendredi 7 mars 2014

ASP.net Captcha

HTTP Handlers are components that implement the System.Web.IHttpHandler interface. It writes some data to the server HTTP response. A file ending with .ashx. In SharePoint they are deployed to the _layouts directory. Generic handlers are a lightweight and quickier way then creating a SharePoint web service layer. I have found them especially useful in getting data from server side to the client side as JSON. They are also useful in AJAX anonymous access scenarios when you cannot use SharePoint .asmx services.
In the recent project I’ve been doing at work, we have created a few Generic HTTPHandlers to call search and return the results as JSON. This has allowed us to have a pure AJAX single page application that can call server side code.
Visual Studio Item Templates for Generic Handlers are not directly supported by Visual Studio SharePoint Projects. When you Add New Item… and search for Installed Templates in a SharePoint project, you will not find Generic Handler anywhere. The ASP.NET handler will require extra work for you making entries in the web.config just to get it to work. There are two solutions to get a Generic Handler in SharePoint:
  • Use CKSDev. By Installing CKSDev there will be a built in handler that will work for you. Just select it when Adding a New Item, and then set the Build Action to Content. Once deployed you will find it at location http://<site>/_layouts/<ProjectName>/myhandler.ashx (Make sure that you add the handler to the feature)
  • Without using CKSDev.
    • Add New Item… and add an Application page, but name the extension .ashx.
    • Delete the ashx.designer.cs file.
    • Open the .ashx file, delete the contents, and replace with the following. (Add your own GUID and ensure all letters are lower case).
<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
<%@ WebHandler Class="$SharePoint.Type.be94b0d0-ca37-4783-b8e9-06ba0477a22f.FullName$" %>
  • Open the ashx.cs file.
  • Add the using statement using System.Web
  • Add the using statement using System.Runtime.IntropServices;
  • Change your namespace if you want.
  • Change the class to inherit from IHttpHandler
  • Implement the IHttpHandler interface. (IsReusable and ProcessRequest)
  • Add [Guid("BE94B0D0-CA37-4783-B8E9-06BA0477A22F")] (Guid should match the Guid from the ASHX page, except uppercase)
  • In the Solution Explorer, click the .ashx file and in the Properties pane, set the Build Action to Content.
  • In the Solution Explorer, click the .ashx.cs file and in the Properties pane, set the Build Action to Compile.
  • Now we need to Save and Close the solution.
  • Edit the .csproj file and add the following text to a PropertyGroup, and reload your project in Visual Studio.
<PropertyGroup>
<TokenReplacementFileExtensions>ashx</TokenReplacementFileExtensions>
</PropertyGroup>



jeudi 6 mars 2014

ASP listview structure

  <asp:ListView ID="ListViewName" runat="server"  DataKeyNames="Id" >
    
      <ItemTemplate>
      <tr>
         
        <td>
         <asp:Label ID="champALabel" runat="server" Text='<%# Eval("champA") %>'></asp:Label>
         <asp:Label ID="ChampBLabelAr" runat="server" Text='<%# Eval("ChampB") %>'  Visible="false"></asp:Label>
        </td>
       <td>
       <asp:LinkButton  ID="LinkButton6" runat="server" CommandArgument='<%# Eval("Id") %>'
       Visible="true">
       <img alt="Image1" runat="server" id="Image1" src="/_layouts/MEF/images         /DownloadIconSmall.jpg" />
       </asp:LinkButton>
    </td>

      </tr >
              
    </ItemTemplate>
           <LayoutTemplate>
               <table id="UserList" border="0" cellpadding="0" cellspacing="0">
             <tr>
                 <th style="text-decoration: underline;width: 102%;color: rgb(109, 109, 109);">
                 <asp:Label ID="ChampALab" runat="server" Text="Tx2"></asp:Label>
                 </th>
                  <th style="text-decoration: underline;width: 102%;color: rgb(109, 109, 109);">
                  <asp:Label ID="ChampBLab" runat="server" Text="Tx"></asp:Label>
                  </th>
               </tr>
                     <tr id="itemPlaceholder" runat="server"></tr>
                 </table>
           </LayoutTemplate>
                
      
       </asp:ListView>

lundi 3 mars 2014

Créer script shell pour exporter une base de données oracle

1> Create a folder where you want your backup folder to be placed. I have created a folder called DBIMPEXP at /home/oracle/

$ cd /home/oracle/DBIMPEXP

2> vi DBExport.sh

3> Type all the below into this file.

#!/bin/bash
ORACLE_HOME=/opt/oracle/products/11.1.0/database;export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$PATH;export PATH
ORACLE_SID=CI;export ORACLE_SID
DIRECTORY='dmpdir';export DIRECTORY

echo $ORACLE_HOME
echo $PATH
SUBJECT="Database export operation performed"
EMAIL="email@domain.com"
MSG="/home/oracle/DBIMPEXP/Hi"

echo "Database or tables have been exported successfully!" >$MSG
echo "This is a system generated message so do not reply to this email!" >>$MSG

NOW=$(date +"%d-%m-%Y-%T")
echo $NOW

exp DBusername/DBPassword@yourSID file=/home/oracle/DBIMPEXP/"Backup_$NOW.dmp" log=/home/oracle/DBIMPEXP/"explog_$NOW.log" tables={SC_LEARNING,SC_NEWS}

/bin/mail -s "$SUBJECT" "$EMAIL" < $MSG

4> To save and close hit Esc and ctrl+zz

5> execute the shell script by sh DBExport.sh

6> Now inside the /home/oracle/DBIMPEXP folder you should get the dmp file and the log file.