473,386 Members | 1,883 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,386 software developers and data experts.

multi application

Hi, Ive written my application and published it. Leaving the editor
open, I install my newly made application and run it. Works perfect,
then I open it a second time so Ive got two instances of the same
application running. The second crashes bringing them both down, when
I choose stop debugging. Could take 2mins, sometimes 10mins. Is this
anything to do with how Im publishing, or could they be cross
referencing each other. I wondering if in code, Im supposed to tel to
2nd 3rd etc that this is a new instance.
Regards Robert
Dec 11 '07 #1
3 1255
Thankyou for your reply. The application connects to betfairs api and
gets current odds on horses in a particular race. I dont think theres
shared resources on the pc. Ive looked at the limits to the api as im
using there free version. I do have a off the shelf application which
does a simular job, and I can open this multiple times with out
conflict, which makes me think its not the api, as it uses the same
api. It happens when one goes to collect the prices, and the object is
null. Im thinking now that it may be a threading problem.
regards Robert
Dec 11 '07 #2
Can I enter large chunks of code here. This is were it breaks down.
Before tis Im basically loading the form, adding a graph and user
control were the odds are shown. What Im going to try is to write a
second application using a different names just to see that its if its
me or the api.

#region
GetMarketPricesCompressedTask_OnGetGetMarketPrices Compressed(betfair.UK.exchange.GetMarketPricesResp
respUK, betfair.AU.exchange.GetMarketPricesCompressedResp respAU,
Tasks.BettingExchangeType m_exchange)
private void
GetMarketPricesCompressedTask_OnGetGetMarketPrices Compressed(betfair.UK.exchange.GetMarketPricesComp ressedResp
respUK, betfair.AU.exchange.GetMarketPricesCompressedResp respAU)
{
if (InvokeRequired)
{
Invoke(new
Tasks.GetMarketPricesCompressedTask.OnGetMarketPri cesCompressedDelegate(GetMarketPricesCompressedTas k_OnGetGetMarketPricesCompressed),
new object[] { respUK, respAU });
}
else
{
if (respUK != null)
{

string[] status;
string[] prices =
(respUK.marketPrices).Split('|'); // will return an array of 3 strings
etc.

if (prices[0].Contains("NR"))
{
status = prices[0].Split('~');

prices = (respUK.marketPrices).Split(':'); //
will return an array of 3 strings etc.

}
else
{
prices = (respUK.marketPrices).Split(':'); //
will return an array of 3 strings etc.

status = prices[0].Split('~');

}
double inplay = double.Parse(status[3]);
if (inplay == 0)
{

if (status[2] != "CLOSED")
{
//if (status[2] != "SUSPENDED")
//{
lblMarketStatus.Text = status[2];
lblLastRefresh.Text = status[8];

for (int i = 1; i <
(prices.GetUpperBound(0)) + 1; i++)
{
if ((prices[i].Contains("\\")) |
(prices[i].Contains(")")))
{
}
else
{

string[] data =
prices[i].Split('|');
string[] ids =
data[0].Split('~');
string comb = data[1] +
data[2];
string[] values =
comb.Split('~');
if (ids[0] ==
selectionId.ToString())
{
string rowName = ids[0];
MarketViewRow row =
(MarketViewRow)m_marketViewRows[rowName];

double backPrice1 = 0.0;
backAmountAvailable1 =
0.0;
if (values.Length 1)
{
if (values[0] != null)
{
backPrice1 =
double.Parse(values[0]);

backAmountAvailable1 = double.Parse(values[1]);
}
}

double backPrice2 = 0.0;
backAmountAvailable2 =
0.0;
if (values.Length 5)
{
if (values[4] != null)
{
backPrice2 =
double.Parse(values[4]);

backAmountAvailable2 = double.Parse(values[5]);
}
}

double backPrice3 = 0.0;
backAmountAvailable3 =
0.0;
if (values.Length 9)
{
if (values[8] != null)
{
backPrice3 =
double.Parse(values[8]);

backAmountAvailable3 = double.Parse(values[9]);
}
}

double layPrice1 = 0.0;
layAmountAvailable1 = 0.0;
if (values.Length 13)
{
if (values[12] !=
null)
{
layPrice1 =
double.Parse(values[12]);

layAmountAvailable1 = double.Parse(values[13]);
}
}

double layPrice2 = 0.0;
layAmountAvailable2 = 0.0;
if (values.Length 17)
{
if (values[16] !=
null)
{
layPrice2 =
double.Parse(values[16]);

layAmountAvailable2 = double.Parse(values[17]);
}
}

double layPrice3 = 0.0;
layAmountAvailable3 = 0.0;
if (values.Length 21)
{
if (values[20] !=
null)
{
layPrice3 =
double.Parse(values[20]);

layAmountAvailable3 = double.Parse(values[21]);
}
}

//
================================================== ================================================== =
//CALCS
row.DisplayPrices("uk",
backPrice1, backAmountAvailable1, backPrice2, backAmountAvailable2,
backPrice3, backAmountAvailable3, layPrice1, layAmountAvailable1,
layPrice2, layAmountAvailable2, layPrice3, layAmountAvailable3);

double allbacks =
(backAmountAvailable1 + backAmountAvailable2 + backAmountAvailable3);
double alllays =
(layAmountAvailable1 + layAmountAvailable2 + layAmountAvailable3);
double totalbacklay =
(allbacks + alllays);

percentCount =
(((allbacks) / (allbacks + alllays)) * 100);
laypercentCount =
(((alllays) / (allbacks + alllays)) * 100);

seventypercent.Add(tick,
70);
thirtypercent.Add(tick,
30);

backPercent.Add(tick,
percentCount);


if (backAmountAvailable1 <
layAmountAvailable1 && backAmountAvailable2 < layAmountAvailable2 &&
backAmountAvailable3 < layAmountAvailable3)
{

Allamountschange.Add(tick, 25);
}
else if
(backAmountAvailable1 layAmountAvailable1 && backAmountAvailable2 >
layAmountAvailable2 && backAmountAvailable3 layAmountAvailable3)
{

Allamountschange.Add(tick,75);
}
else
{

Allamountschange.Add(tick, 50);
}
if (tick < 16)
{
//total amount
available

//
backData.Add(allbacks);
//
layData.Add(alllays);
//
totalavailabletoback.Add(Convert.ToDouble(tick),
Convert.ToDouble(allbacks));
//
totalavailabletolay.Add(Convert.ToDouble(tick),
Convert.ToDouble(alllays));

//Odds

backPriceOdds.Add(backPrice1);//constant
Backodds.Add(Convert.ToDouble(tick), Convert.ToDouble(backPrice1));//
odds graph
//averages
//addAveback.Add(0);
// addAvelay.Add(0);
addAvebackOdds.Add(0);
;

//bols
//
upperbackcalcs.Add(0);
//
lowerbackcalcs.Add(0);
//
upperlaycalcs.Add(0);
//
lowerlaycalcs.Add(0);
upperbackOddscalcs.Add(0);

lowerbackOddscalcs.Add(0);
//
bvlbolschange.Add(tick, 0);
tick++;
}
else if (tick 15)
{

//total amount
available

//
backData.Add(allbacks);
//
layData.Add(alllays);

//Odds
backPriceOdds.Add(backPrice1);
//
backPercent.Add(tick, percentCount);

//total amount
available graph
//
totalavailabletoback.Add(Convert.ToDouble(tick),
Convert.ToDouble(allbacks));
//
totalavailabletolay.Add(Convert.ToDouble(tick),
Convert.ToDouble(alllays));
//Odds graph

Backodds.Add(Convert.ToDouble(tick), Convert.ToDouble(backPrice1));
//Backave.Clear();
//Layave.Clear();
BackaveOdds.Clear();
//get average & stddev
int w =
((backPriceOdds.Count) - 15);
for (int z =
((backPriceOdds.Count) - 15); z < ((backPriceOdds.Count)); z++)
{
//averages
//
Backave.Add(backData[z]);
//
Layave.Add(layData[z]);

BackaveOdds.Add(backPriceOdds[z]);

}

//ave calcs
// Avelay =
GetAvg(Layave);
// Aveback =
GetAvg(Backave);

AvebackOdds =
GetAvg(BackaveOdds);
//dev calcs
//stdbackDev =
GetStandardDeviation(Backave);
//stdLayDev =
GetStandardDeviation(Layave);
stdbackDevOdds =
GetStandardDeviation(BackaveOdds);
//ave constants
//
addAveback.Add(Aveback);
//
addAvelay.Add(Avelay);

addAvebackOdds.Add(AvebackOdds);
//bols constants
//
upperbackcalcs.Add(Aveback + (1.9 * stdbackDev));
//
lowerbackcalcs.Add(Aveback - (1.9 * stdbackDev));
//
upperlaycalcs.Add(Avelay + (1.9 * stdLayDev));
//
lowerlaycalcs.Add(Avelay - (1.9 * stdLayDev));
upperbackOddscalcs.Add(AvebackOdds + (1.9 * stdbackDevOdds));

lowerbackOddscalcs.Add(AvebackOdds - (1.9 * stdbackDevOdds));
//ave graph
//
amountbackAverage.Add(Convert.ToDouble(tick),
Convert.ToDouble(Aveback));
//
amountlayAverage.Add(Convert.ToDouble(tick),
Convert.ToDouble(Avelay));

amountbackAverageOdds.Add(Convert.ToDouble(tick),
Convert.ToDouble(AvebackOdds));

//bols graph
//
upperBack.Add(Convert.ToDouble(tick), Convert.ToDouble(Aveback + (1.9
* stdbackDev)));
//
lowerBack.Add(Convert.ToDouble(tick), Convert.ToDouble(Aveback - (1.9
* stdbackDev)));
//
upperlay.Add(Convert.ToDouble(tick), Convert.ToDouble(Avelay + (1.9 *
stdLayDev)));
//
lowerlay.Add(Convert.ToDouble(tick), Convert.ToDouble(Avelay - (1.9 *
stdLayDev)));

upperBackOdds.Add(Convert.ToDouble(tick), Convert.ToDouble(AvebackOdds
+ (1.9 * stdbackDevOdds)));

lowerBackOdds.Add(Convert.ToDouble(tick), Convert.ToDouble(AvebackOdds
- (1.9 * stdbackDevOdds)));
//bols bars
//amount
//backBols.Clear();
// layBols.Clear();
//backValue =
(allbacks - (Aveback - (1.9 * stdbackDev))) / ((Aveback + (1.9 *
stdbackDev)) - (Aveback - (1.9 * stdbackDev)));
// layValue = (alllays
- (Avelay - (1.9 * stdLayDev))) / ((Avelay + (1.9 * stdLayDev)) -
(Avelay - (1.9 * stdLayDev)));

// linediffs.Add(tick,
2.25);
//if (backValue < 0.2
&& layValue 0.9)
// {
//
bvlbolschange.Add(tick, 2.5);
// }
// else if (backValue >
0.9 && layValue < 0.2)
// {
//
bvlbolschange.Add(tick, 2);
// }
// else
// {
//
bvlbolschange.Add(tick, 2.25);
// }
//back odds bols dif


backoddsvalue =
(backPrice1 - (AvebackOdds - (1.9 * stdbackDevOdds))) / ((AvebackOdds
+ (1.9 * stdbackDevOdds)) - (AvebackOdds - (1.9 * stdbackDevOdds)));
if (backoddsvalue < 0)
{

oddsbolschange.Add(tick, 0);
}
else if (backoddsvalue
1)
{

oddsbolschange.Add(tick, -1);
}
else
{

oddsbolschange.Add(tick, 0);
}
//bandwidth
//bandBackamountwidth
= ((Aveback + (1.9 * stdbackDev)) - (Aveback - (1.9 * stdbackDev))) /
Aveback; ;
// bandLayamountwidth =
((Avelay + (1.9 * stdLayDev)) - (Avelay - (1.9 * stdLayDev))) /
Avelay;

//backBols.Add(1,
backValue);
//layBols.Add(1,
layValue);

tick++;
}
availCreateGraph(zedGraphControl1);

}
}

}

}
else
{
timer1.Stop();
lblLastRefresh.Text =
status[2].ToString();
lblMarketStatus.Text =
status[2].ToString();

}
}
else
{
timer1.Stop();
panelInPlay.Visible = true;
}

}
//'================================================= ================================================== =====================

else if (respAU != null)
{

string[] status;



string[] prices =
(respAU.marketPrices).Split('|'); // will return an array of 3 strings
etc.

if (prices[0].Contains("NR"))
{
status = prices[0].Split('~');

prices = (respAU.marketPrices).Split(':'); //
will return an array of 3 strings etc.
}
else
{
prices = (respAU.marketPrices).Split(':'); //
will return an array of 3 strings etc.

status = prices[0].Split('~');

}

double inplay = double.Parse(status[3]);
if (inplay == 0)
{

if (status[2] != "CLOSED")
{
if (status[2] != "SUSPENDED")
{
lblMarketStatus.Text = status[2];
lblLastRefresh.Text = status[8];

for (int i = 1; i <
(prices.GetUpperBound(0)) + 1; i++)
{
if ((prices[i].Contains("\\")) |
(prices[i].Contains(")")))
{
}
else
{
string[] data =
prices[i].Split('|');
string[] ids =
data[0].Split('~');
string comb = data[1] +
data[2];
string[] values =
comb.Split('~');
if (ids[0] ==
selectionId.ToString())
{

string rowName = ids[0];

MarketViewRow row =
(MarketViewRow)m_marketViewRows[rowName];

double backPrice1 = 0.0;
backAmountAvailable1 = 0.0;
if (values.Length 1)
{
if (values[0] != null)
{
backPrice1 =
double.Parse(values[0]);
backAmountAvailable1 =
double.Parse(values[1]);
}
}

double backPrice2 = 0.0;
backAmountAvailable2 = 0.0;
if (values.Length 5)
{
if (values[4] != null)
{
backPrice2 =
double.Parse(values[4]);
backAmountAvailable2 =
double.Parse(values[5]);
}
}

double backPrice3 = 0.0;
backAmountAvailable3 = 0.0;
if (values.Length 9)
{
if (values[8] != null)
{
backPrice3 =
double.Parse(values[8]);
backAmountAvailable3 =
double.Parse(values[9]);
}
}

double layPrice1 = 0.0;
layAmountAvailable1 = 0.0;
if (values.Length 13)
{
if (values[12] != null)
{
layPrice1 =
double.Parse(values[12]);
layAmountAvailable1 =
double.Parse(values[13]);
}
}

double layPrice2 = 0.0;
layAmountAvailable2 = 0.0;
if (values.Length 17)
{
if (values[16] != null)
{
layPrice2 =
double.Parse(values[16]);
layAmountAvailable2 =
double.Parse(values[17]);
}
}

double layPrice3 = 0.0;
layAmountAvailable3 = 0.0;
if (values.Length 21)
{
if (values[20] != null)
{
layPrice3 =
double.Parse(values[20]);
layAmountAvailable3 =
double.Parse(values[21]);
}
}
percentCount = 50;
laypercentCount = 50;

//
================================================== ================================================== =
//CALCS

row.DisplayPrices("au",
backPrice1, backAmountAvailable1, backPrice2, backAmountAvailable2,
backPrice3, backAmountAvailable3, layPrice1, layAmountAvailable1,
layPrice2, layAmountAvailable2, layPrice3, layAmountAvailable3);

double allbacks =
(backAmountAvailable1 + backAmountAvailable2 + backAmountAvailable3);
double alllays =
(layAmountAvailable1 + layAmountAvailable2 + layAmountAvailable3);
double totalbacklay =
(allbacks + alllays);

percentCount = (((allbacks) /
(allbacks + alllays)) * 100);
laypercentCount =
(((alllays) / (allbacks + alllays)) * 100);

seventypercent.Add(tick, 70);
thirtypercent.Add(tick, 30);


if (backAmountAvailable1 <
layAmountAvailable1 && backAmountAvailable2 < layAmountAvailable2 &&
backAmountAvailable3 < layAmountAvailable3)
{
Allamountschange.Add(tick,
25);
}
else if (backAmountAvailable1
layAmountAvailable1 && backAmountAvailable2 layAmountAvailable2 &&
backAmountAvailable3 layAmountAvailable3)
{
Allamountschange.Add(tick,
75);
}
else
{
Allamountschange.Add(tick,
50);
}
if (tick < 16)
{
//total amount available

backData.Add(allbacks);
layData.Add(alllays);
//Odds

backPriceOdds.Add(backPrice1);
Backodds.Add(Convert.ToDouble(tick), Convert.ToDouble(backPrice1));
backPercent.Add(tick,
percentCount);

//averages
addAveback.Add(0);
addAvelay.Add(0);
addAvebackOdds.Add(0);
;

//bols
upperbackcalcs.Add(0);
lowerbackcalcs.Add(0);
upperlaycalcs.Add(0);
lowerlaycalcs.Add(0);

upperbackOddscalcs.Add(0);
lowerbackOddscalcs.Add(0);
bvlbolschange.Add(tick,
0);
tick++;
}
else if (tick 15)
{

//total amount available

backData.Add(allbacks);
layData.Add(alllays);

//Odds
backPriceOdds.Add(backPrice1);
backPercent.Add(tick,
percentCount);
//Odds graph

Backodds.Add(Convert.ToDouble(tick), Convert.ToDouble(backPrice1));
Backave.Clear();
Layave.Clear();
BackaveOdds.Clear();
//get average & stddev
int w =
((backPriceOdds.Count) - 15);
for (int z =
((backPriceOdds.Count) - 15); z < ((backPriceOdds.Count)); z++)
{
//averages

Backave.Add(backData[z]);

Layave.Add(layData[z]);

BackaveOdds.Add(backPriceOdds[z]);

}

//ave calcs
Avelay = GetAvg(Layave);
Aveback = GetAvg(Backave);

AvebackOdds =
GetAvg(BackaveOdds);
//dev calcs
stdbackDev =
GetStandardDeviation(Backave);
stdLayDev =
GetStandardDeviation(Layave);
stdbackDevOdds =
GetStandardDeviation(BackaveOdds);
//ave constants
addAveback.Add(Aveback);
addAvelay.Add(Avelay);

addAvebackOdds.Add(AvebackOdds);
//bols constants
upperbackcalcs.Add(Aveback
+ (1.9 * stdbackDev));
lowerbackcalcs.Add(Aveback
- (1.9 * stdbackDev));
upperlaycalcs.Add(Avelay +
(1.9 * stdLayDev));
lowerlaycalcs.Add(Avelay -
(1.9 * stdLayDev));
upperbackOddscalcs.Add(AvebackOdds + (1.9 * stdbackDevOdds));

lowerbackOddscalcs.Add(AvebackOdds - (1.9 * stdbackDevOdds));
//ave graph

amountbackAverage.Add(Convert.ToDouble(tick),
Convert.ToDouble(Aveback));

amountlayAverage.Add(Convert.ToDouble(tick),
Convert.ToDouble(Avelay));

amountbackAverageOdds.Add(Convert.ToDouble(tick),
Convert.ToDouble(AvebackOdds));

//bols graph

upperBack.Add(Convert.ToDouble(tick), Convert.ToDouble(Aveback + (1.9
* stdbackDev)));

lowerBack.Add(Convert.ToDouble(tick), Convert.ToDouble(Aveback - (1.9
* stdbackDev)));

upperlay.Add(Convert.ToDouble(tick), Convert.ToDouble(Avelay + (1.9 *
stdLayDev)));

lowerlay.Add(Convert.ToDouble(tick), Convert.ToDouble(Avelay - (1.9 *
stdLayDev)));

upperBackOdds.Add(Convert.ToDouble(tick), Convert.ToDouble(AvebackOdds
+ (1.9 * stdbackDevOdds)));

lowerBackOdds.Add(Convert.ToDouble(tick), Convert.ToDouble(AvebackOdds
- (1.9 * stdbackDevOdds)));
//bols bars
//amount
backBols.Clear();
layBols.Clear();
backValue = (allbacks -
(Aveback - (1.9 * stdbackDev))) / ((Aveback + (1.9 * stdbackDev)) -
(Aveback - (1.9 * stdbackDev)));
layValue = (alllays -
(Avelay - (1.9 * stdLayDev))) / ((Avelay + (1.9 * stdLayDev)) -
(Avelay - (1.9 * stdLayDev)));

linediffs.Add(tick, 2.25);
if (backValue < 0.2 &&
layValue 0.9)
{

bvlbolschange.Add(tick, 2.5);
}
else if (backValue 0.9
&& layValue < 0.2)
{

bvlbolschange.Add(tick, 2);
}
else
{

bvlbolschange.Add(tick, 2.25);
}
//back odds bols dif


backoddsvalue =
(backPrice1 - (AvebackOdds - (1.9 * stdbackDevOdds))) / ((AvebackOdds
+ (1.9 * stdbackDevOdds)) - (AvebackOdds - (1.9 * stdbackDevOdds)));
if (backoddsvalue < 0)
{

oddsbolschange.Add(tick, 0);
}
else if (backoddsvalue >
1)
{

oddsbolschange.Add(tick, -1);
}
else
{

oddsbolschange.Add(tick, 0);
}
//bandwidth
bandBackamountwidth =
((Aveback + (1.9 * stdbackDev)) - (Aveback - (1.9 * stdbackDev))) /
Aveback; ;
bandLayamountwidth =
((Avelay + (1.9 * stdLayDev)) - (Avelay - (1.9 * stdLayDev))) /
Avelay;

backBols.Add(1,
backValue);
layBols.Add(1, layValue);


tick++;
}
availCreateGraph(zedGraphControl1);


}
}
}
}
else
{
timer1.Stop();
lblLastRefresh.Text =
status[2].ToString();
lblMarketStatus.Text =
status[2].ToString();

}

}
else
{
timer1.Stop();
lblLastRefresh.Text =
status[2].ToString();
lblMarketStatus.Text =
status[2].ToString();

}
}
else
{
timer1.Stop();
lblLastRefresh.Text = "IN PLAY";
lblMarketStatus.Text = "IN PLAY";

}
}
}//FIRST ELSE
}//INV

#endregion

regards robert
Dec 11 '07 #3
Ok, I will eliminate the api first then atack the code. In the meen
time thanks for your time.
Regards Robert
Dec 11 '07 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
by: Ganbold | last post by:
Hi, I'm new to multi-threaded programming and reading the book "Programming with POSIX Threads" and trying to understand concepts and coding. What I'm trying to do is to rewrite mysql client...
3
by: Amit Dedhia | last post by:
Hi I am developing a Dot net application (involving image processing) on a uni processor. It works well on my machine. I then take all my code on a multi processor, build and run the application...
3
by: kathy | last post by:
I have a general question. If I write a application using any language(C/C++/C#/VB). How to make sure it only has one instance running? What I need to write in source code? If multi-instances...
5
by: bobwansink | last post by:
Hi, I'm relatively new to programming and I would like to create a C++ multi user program. It's for a project for school. This means I will have to write a paper about the theory too. Does anyone...
1
by: SevDer | last post by:
Hi, I would like to know, if it is possible to maintain affinity by having a webgarden for our ASP.NET application in multi CPU server? And of course if possible without or minimal code change...
0
ammoos
by: ammoos | last post by:
hi friends pls help me.. i got an assignment which i feel very difficult to me.. i dont have more knowledge about multi-threading in .net... the assignment details is below.... pls help me... i...
2
by: Aussie Rules | last post by:
Hi, I have a site that Iwant to either display my text in english or french, based on the users prefernces ? I am new to webforms, but I know in winforms, this is pretty easy with a resource...
0
by: bharathreddy | last post by:
Vs 2008 is the MS latest IDE for developing Windows, Web, Smart Device Applications. It comes along with .NET Framework 3.5, C# 3.0, LINQ, ASP.NET AJAX and VSTO . Now with the power of VS 2008 we can...
14
by: =?ISO-8859-1?Q?Tom=E1s_=D3_h=C9ilidhe?= | last post by:
As far as I know, the C Standard has no mention of multi-threaded programming; it has no mention of how to achieve multi-threaded programming, nor does it mention whether the language or its...
4
by: =?Utf-8?B?SGVucmlrIFNjaG1pZA==?= | last post by:
Hi, consider the attached code. Serializing the multi-dimensional array takes about 36s vs. 0.36s for the single-dimensional array. Initializing the multi-dimensional array takes about 4s...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.