vytvořte novou funkci pomocí kódu, pokud neexistuje
<p>chci vytvořit novou funkci skriptem v mé databázi. kód skriptu je níže:</p><pre><code>if exists(select * from sys.sysobjects a where a.name =n'fn\_myfunc' and xtype=n'fn') return; create function fn\_myfunc () returns varchar(10) as begin ... end </code></pre><p>ale když spustím výše uvedený skript, sql server vrátí chybu:</p><pre><code>'create function' must be the first statement in a query batch. </code></pre>
<p><strong> aktualizace leden 2017 - sql server 2016+/azure sql database </strong></p><p>sql server 2016 a aktuální verze azure sql database má nyní následující syntaxi pro funkce, procedury, tabulky, databáze atd. ( <a href="https://blogs.msdn.microsoft.com/sqlserverstorageengine/2015/11/03/drop-if-exists-new-thing-in-sql-server-2016/"><code>drop if exists</code></a> ):</p><pre><code>drop function if exists dbo.fn\_myfunc; </code></pre><p>a sql server 2016 service pack 1 přidává ještě lepší funkčnost pro moduly (funkce, procedury, spouštěče, zobrazení), což znamená, že nedochází ke ztrátě oprávnění nebo závislostí ( <a href="https://blogs.msdn.microsoft.com/sqlserverstorageengine/2016/11/17/create-or-alter-another-great-language-enhancement-in-sql-server-2016-sp1/"><code>create or alter</code></a> ):</p><pre><code>create or alter function dbo.fn\_myfunc ... </code></pre><p>obě tato vylepšení syntaxe mohou vést k mnohem jednodušším skriptům používaným pro řízení zdroje, nasazení atd.</p><p>ale pokud používáte ...</p><hr><p><strong> starší verze </strong></p><p>při skriptu z management studio je třeba udělat to, co sql server dělá:</p><pre><code>if not exists (select 1 from sys.objects where type = 'fn' and name = 'fn\_myfunc') begin declare @sql nvarchar(max); set @sql = n'create function ...'; exec sp\_executesql @sql; end </code></pre><p>nebo můžete říct:</p><pre><code>begin try drop function dbo.fn\_myfunc; end try begin catch print 'function did not exist.'; end catch go create function... </code></pre><p>nebo můžete jen říct:</p><pre><code>drop function dbo.fn\_myfunc; go create function... </code></pre><p>(zde se zobrazí chybová zpráva, pokud funkce již neexistuje, ale skript bude pokračovat od příštího go, takže ať už kapka pracovala nebo ne, bude funkce stále vytvořena (znovu).)</p><p>pokud funkci zrušíte a znovu ji vytvoříte, ztratíte také oprávnění a informace o závislostech.</p>
[`IGNORE_SPACE`](http://dev.mysql.com/doc/refman/5.1/en/server-sql-mode.html#sqlmode_ignore_space)Režim umožňuje mezery mezi názvy funkcí a následující závorkách. Pokud je to povoleno, všechny názvy funkcí se stal vyhrazená slova, protože to stane se nemožné pro MySQL, zda voláte funkce nebo deklarovat (s použitím) identifikátor.


Proto, pokud je to povoleno, vaše `CREATE TABLE`selže a následující:



```
SELECT MD5 (some_column) FROM some_table

```

bude pracovat. Pokud `IGNORE_SPACE`je vypnuta, opak stane ( `CREATE TABLE`bude fungovat a především `SELECT`nebude, protože tam je mezera mezi názvu funkce a závorce). <p>rozhraní api <a href="http://codex.wordpress.org/widgets\_api#developing\_widgets\_on\_2.8.2b">widgetů</a> je nejrychlejší způsob, jak vytvořit widget, který lze znovu použít. příklad použití:</p><pre><code>class my\_widget extends wp\_widget { /** * php4 constructor */ function my\_widget() { my\_widget::\_\_construct(); } /** * php5 constructor */ function \_\_construct() { // actual widget processes } /** * echo the settings update form * * @param array $instance current settings */ function form($instance) { // outputs the options form on admin } /** * update a particular instance * * @param array $new\_instance new settings for this instance as input by the user via form() * @param array $old\_instance old settings for this instance * @return array settings to save or bool (false) to cancel saving */ function update($new\_instance, $old\_instance) { // processes widget options to be saved } /** * echo the widget content * * @param array $args display arguments including before\_title, after\_title, before\_widget, and after\_widget * @param array $instance the settings for the particular instance of this widget */ function widget($args, $instance) { // outputs the content of the widget } } register\_widget('my\_widget'); </code></pre> <p>nejlepší je vytvořit šablonu stránky s následujícím kódem. také se musíte rozhodnout, zda budete používat značku nebo kategorii. níže uvedený kód předpokládá, že používáte kategorii.</p><pre><code>&lt;div class="news"&gt; &lt;?php //the query wp\_query('showposts=5&amp;category\_name=news'); //the loop if ( have\_posts() ) : while ( have\_posts() ) : the\_post(); ?&gt; &lt;h2&gt;&lt;a href="&lt;?php the\_permalink() ?&gt;" rel="bookmark" title="permanent link to &lt;?php the\_title\_attribute(); ?&gt;"&gt;&lt;?php the\_title(); ?&gt;&lt;/a&gt;&lt;/h2&gt; &lt;div class="post\_content"&gt; &lt;?php the\_excerpt(); ?&gt; &lt;/div&gt; &lt;? endwhile; endif; //reset query wp\_reset\_query(); ?&gt; &lt;/div&gt; &lt;div class="events"&gt; &lt;?php //the query wp\_query('showposts=5&amp;category\_name=events'); //the loop if ( have\_posts() ) : while ( have\_posts() ) : the\_post(); ?&gt; &lt;h2&gt;&lt;a href="&lt;?php the\_permalink() ?&gt;" rel="bookmark" title="permanent link to &lt;?php the\_title\_attribute(); ?&gt;"&gt;&lt;?php the\_title(); ?&gt;&lt;/a&gt;&lt;/h2&gt; &lt;div class="post\_content"&gt; &lt;?php the\_excerpt(); ?&gt; &lt;/div&gt; &lt;? endwhile; endif; //reset query wp\_reset\_query(); ?&gt; &lt;/div&gt; </code></pre> Pravděpodobně požadujete něco takového$name = mysql\_query("SELECT name FROM rezervace WHERE week = '$year-W$weekNum0'");$vysledek = "";while($row = mysql\_fetch\_array($name)) { $vysledek = $vysledek.$row["name"].",";}$vysledek = substr($vysledek,0,-1); Často toto je provedeno pomocí [„Data Driven odběry“](https://msdn.microsoft.com/en-us/library/ms169673.aspx) , ale tato funkce je k dispozici pouze v některých SQL vydáních: Enterprise a Business Intelligence, ale ne v normě.


Takže existuje celá řada kreativních řešení. Ale nemám rád žádné z nich, a všechny vyžadují spravedlivý trochu práce mimo SSRS.


Mezi řešení, které jsem viděl, patří: Vytvoření odběr a potom zakázání nebo povolení SQL úlohu, kterou odešle předplatné (identifikovatelné podle GUID).


Vytvořte si .NET obálky exe zvládnout odeslání e-mailu. Je možné spustit dotaz nejprve zjistit, kolik se vrací řádky, a pak v případě potřeby generovat zprávu a zahrnout do e-mailu. co jsem slyšel, tak existuje skript pro příkazovou řádku, co to udělá přes LibreOffice. Mrkni na:[https://sourceforge.net/projects/jodconverter/](https://sourceforge.net/projects/jodconverter/?source=recommended)nebo<http://oooconv.free.fr/batchconv/batchconv_en.html> <p>zde je kód, který používám vždy, když nastavím nový blog wordpress:</p><p>custom admin footer text</p><pre><code>// customize admin footer text function custom\_admin\_footer() { echo '&lt;a href="http://www.netconstructor.com/"&gt;website design by netconstructor, inc.&lt;/a&gt;'; } add\_filter('admin\_footer\_text', 'custom\_admin\_footer'); </code></pre><p>vymazat verze informací z head krmiv</p><pre><code>// remove version info from the head of feeds function complete\_version\_removal() { return ''; } add\_filter('the\_generator', 'complete\_version\_removal'); </code></pre><p>odstraňte junk z hlavy stránk veřejných stránků</p><pre><code>// remove junk from the header of public website pages remove\_action('wp\_head', 'rsd\_link'); remove\_action('wp\_head', 'wp\_generator'); remove\_action('wp\_head', 'feed\_links', 2); remove\_action('wp\_head', 'index\_rel\_link'); remove\_action('wp\_head', 'wlwmanifest\_link'); remove\_action('wp\_head', 'feed\_links\_extra', 3); remove\_action('wp\_head', 'start\_post\_rel\_link', 10, 0); remove\_action('wp\_head', 'parent\_post\_rel\_link', 10, 0); remove\_action('wp\_head', 'adjacent\_posts\_rel\_link', 10, 0); </code></pre><p>odstranit oznámení o wordpressu pro všechny uživatele except sysadmin</p><pre><code>// remove the wordpress update notification for all users except sysadmin global $user\_login; get\_currentuserinfo(); if ($user\_login !== "sysadmin") { add\_action( 'init', create\_function( '$a', "remove\_action( 'init', 'wp\_version\_check' );" ), 2 ); add\_filter( 'pre\_option\_update\_core', create\_function( '$a', "return null;" ) ); } </code></pre><p>uživatelský admin logos:</p><pre><code>// custom admin login header logo function my\_custom\_login\_logo() { echo '&lt;style type="text/css"&gt; h1 a { background-image:url('.get\_bloginfo('template\_directory').'/images/excitesteps-login-logo.png) !important; } &lt;/style&gt;'; } add\_action('login\_head', 'my\_custom\_login\_logo'); // custom admin logic header logo add\_action('admin\_head', 'my\_custom\_logo'); function my\_custom\_logo() { echo '&lt;style type="text/css"&gt;#header-logo { background-image: url('.get\_bloginfo('template\_directory').'/images/excitesteps-icon.gif) !important; }&lt;/style&gt;'; } // custom admin login header link &amp; alt text function change\_wp\_login\_url() { echo bloginfo('url'); } function change\_wp\_login\_title() { echo get\_option('blogname'); } add\_filter('login\_headerurl', 'change\_wp\_login\_url'); add\_filter('login\_headertitle', 'change\_wp\_login\_title'); </code></pre> <p>můžete vytvořit funkci se vzorem <code>shouldserialize{propertyname}</code>, který řekne xmlserializer, pokud má člen serializovat nebo ne.</p><p>pokud se například vlastnost třídy nazývá <code>mynullableint</code>, můžete mít</p><pre><code>public bool shouldserializemynullableint() { return mynullableint.hasvalue; } </code></pre><p>zde je úplný vzorek</p><pre><code>public class person { public string name {get;set;} public int? age {get;set;} public bool shouldserializeage() { return age.hasvalue; } } </code></pre><p>serializován s následujícím kódem</p><pre><code>person theperson = new person(){name="chris"}; xmlserializer xs = new xmlserializer(typeof(person)); stringwriter sw = new stringwriter(); xs.serialize(sw, theperson); </code></pre><p>výsledky v následujícím xml - všimněte si, že neexistuje žádný věk</p><pre><code>&lt;person xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema"&gt; &lt;name&gt;chris&lt;/name&gt; &lt;/person&gt; </code></pre> klikneš na nový program, napíšeš kód a uložíš, případně zkompiluješ.Co se kódu týče je to vlastně jen o vynásobení čísla sama sebou. Pokud nevíš jak to udělat, věříš, že jsem si skoro jistý, že někde na internetu budou nějaké návody a toto bude někde na první straně? Jinými slovy.... tohle je ta nejzákladnější věc a pokud ani tu nedokážeš, tak asi s VB vůbec neumíš a bylo by nejlepší najít si nějaký tutorial, k čemu bude, že ti tady někdo napíše jeden řádek kódu, který si navíc najdeš za pár vteřin na Googlu, dřív než napíšeš blbej dotaz sem. Funkce vraci #N/A protoze nenalezla odpovidajici hodnotu. Dost tezko muze najit ve sloupci A1:A5 hodnotu 0,142857143 co je min(B1:B5), musis hledat 1/min(B1:B5) pripadne ZAOKROUHLIT(1/MIN(B1:B5);0)  
napr. vzorec: =lookup((1/min(B1:B5);B1:B5;A1:A5)